如何使用唯一数据为多处理池的每个成员播种

假设我有一个要在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,...])
dmayahot777 回答:如何使用唯一数据为多处理池的每个成员播种

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3156505.html

大家都在问