在进程池python中排序

kar*_*kar 3 multiprocessing python-3.x python-multiprocessing

我试图从在 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)
Run Code Online (Sandbox Code Playgroud)

结果是否总是按照 zip 中数组的顺序返回?

Ant*_*ile 9

Pool.starmap(and Pool.map) 将按照传递给它们的参数的顺序返回值——但这并不意味着它们将按顺序运行。如果您不关心顺序并且可以接受无序结果(并且可能具有更高的性能),那么Pool.imap_unordered.

查看文档