我试图从在 python 中并行运行的进程返回结果。这是代码。
from dateutil.parser import parse
from multiprocessing.dummy import Pool
from itertools import *
import time
import random
def abcd(a):
time.sleep(a)
print(a)
return a
p = Pool(3)
a = p.starmap(abcd, zip([10, 2, 15]))
p.close()
p.join()
print(a)
结果是否总是按照 zip 中数组的顺序返回?
最佳答案
Pool.starmap
(和 Pool.map
)将按照传递给它们的参数的顺序返回值——但这并不意味着它们将按顺序运行。如果您不关心顺序并且可以接受无序结果(并且可能具有更高的性能),则可以使用 Pool.imap_unordered
.
见 the documentation
关于python-3.x - 在进程池python中排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44830686/