我正在尝试在python中实现多处理。至少我可能在列表中至少有500个元素。我有一个函数,列表的每个元素都需要作为参数传递。然后,每个函数都应该作为一个单独的过程执行,使用mutli处理启动一个新的解释器或者然后。以下是一些伪代码。
def fiction(arrayElement)
perform some operations here
arrayList[]
for eachElement in arrayList:
fiction(eachElement)
我希望多处理
下的功能表示arrayList中的eachElement:
这样我就可以使用我的盒子的多个核心了。所有的帮助表示赞赏。
答案 0 :(得分:4)
multiprocessing模块包含各种基本类,可以对此有所帮助:
from multiprocessing import Pool
def f(x):
return x*x
p = Pool(5)
p.map(f, [1,2,3])
这项工作将分配到3个流程中。
这很简单,但你可以使用外部包实现更多功能,主要是Message-oriented middleware。
Prime示例包括ActiveMQ,RabbitMQ和ZeroMQ。
RabbitMQ结合了良好的python API和简单性。您可以看到here创建调度程序工作者模式是多么简单,其中一个进程正在发送工作负载,而其他进程则预先形成它。
ZeroMQ有点低级,但非常轻量级,不需要外部代理。