假设我有一个要在n个worker之间分配的对象数组 进行映射工作的流程。做到这一点的最佳方法是什么? 现在,我正在为工作对象播种一个队列,然后让每个 工作进程从所述队列中获取工作对象之一,但是我 觉得应该有一种更简洁的方法(也许通过找到一种方法) 将唯一的参数传递给每个初始化程序)。我目前在做什么 就像使用Pool及其各种完成游戏将足够普遍 没有附带代码的参数,或者(我认为是)滥用 共享队列。
E.G
import multiprocessing as mp
objects = [ obj1,obj2,obj3 ]
object_pool = mp.Queue()
for o in objects: object_pool.put(o)
worker_object = None
def init():
worker_object = Worker(object_pool.get())
def worker(thing):
return worker_object.transform(thing)
pool = mp.Pool(len(objects),initializer=init)
pool.map(worker,[item 1,item 2,...])