python-3.x - 在进程池python中排序

标签 python-3.x multiprocessing 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)

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

最佳答案

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

the documentation

关于python-3.x - 在进程池python中排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44830686/

相关文章:

python - 为什么我的递归函数还能工作?语法困惑

python - 创建深度复制时尝试 pickle 未知类型

linux - 两个进程通过 Erlang 在两台计算机中通信

python - 如何在子进程中中断函数的执行,以使用Pyglet播放和暂停音频?

Python 日志记录 setLevel() 没有生效

python-3.x - 数据透视表中每个级别的小计

python - 枕头不适用于 mac 上的 python 3

c# - 多处理中的 Path.GetTempFileName

parallel-processing - MPI 程序的断言函数

python - 是否可以在 python 中并行化 selenium webdriver get_attribute 调用?