使用multiprocessing.Pool.map()时,是否保证按顺序检索结果?

时间:2019-03-25 15:04:03

标签: python python-3.x multiprocessing

使用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]?如果没有,我该如何确保这种情况发生?

1 个答案:

答案 0 :(得分:1)

是的,使用multiprocessing.Pool.map方法,结果将始终遵循给定可迭代项中相应项目的顺序,这就是为什么此方法将阻塞直到所有子进程都完成的原因。