多处理 python 函数,用于调用返回值的函数



我正在尝试并行化我的代码,但我不知道如何正确完成。 我的代码是这样的:

import my_module
def task(i):
result = my_module.func(i) #This takes about 30 secs
return result
if __name__ == "__main__":
from concurrent.futures import ProcessPoolExecutor
executor = ProcessPoolExecutor()
results = executor.map(task, range(500))
print(results)

但是主程序不会等待my_module.func()的结果。 返回类似以下内容:生成器对象在 0x 处_chain_from_iterable_of_lists.....

我怎样才能使进程等待func()的结果

你不能,原因如下:

多处理/线程的整个思想是,您可以在所述函数中执行所有必要的代码,而不是等待返回语句,并使用线程,每秒多次执行所有操作。

也就是说,如果您需要它来等待返回数据,那么也许您不应该使用线程。但是,如果您绝对需要使用线程,请在函数本身中合并您使用返回数据的任何内容。

最新更新