3 回答

TA贡献1808条经验 获得超4个赞
这可能与问题没有100%的关联,但在我搜索使用队列的多处理的示例时,这首先出现在谷歌上。
这是一个基本的示例类,您可以实例化并将项目放入队列中,并且可以等到队列完成。这就是我所需要的一切。
from multiprocessing import JoinableQueue
from multiprocessing.context import Process
class Renderer:
queue = None
def __init__(self, nb_workers=2):
self.queue = JoinableQueue()
self.processes = [Process(target=self.upload) for i in range(nb_workers)]
for p in self.processes:
p.start()
def render(self, item):
self.queue.put(item)
def upload(self):
while True:
item = self.queue.get()
if item is None:
break
# process your item here
self.queue.task_done()
def terminate(self):
""" wait until queue is empty and terminate processes """
self.queue.join()
for p in self.processes:
p.terminate()
r = Renderer()
r.render(item1)
r.render(item2)
r.terminate()
添加回答
举报