使用multiprocessing.Pool.map()
时,即使func()
花费可变的时间才能确保结果按顺序排列? (即第二个工作人员可以在第一个工作人员之前完成工作,等等)
def func(arg):
# stuff that takes random time to complete ...
return arg
args = [1, 2, 3, 4]
pool = mp.Pool(processes=4)
results = pool.map(func, args)
print(results)
在此示例中,是否保证结果将打印为[1, 2, 3, 4]
?如果没有,我该如何确保这种情况发生?
答案 0 :(得分:1)
是的,使用multiprocessing.Pool.map
方法,结果将始终遵循给定可迭代项中相应项目的顺序,这就是为什么此方法将阻塞直到所有子进程都完成的原因。