3 回答

TA貢獻1808條經(jīng)驗 獲得超4個贊
這可能與問題沒有100%的關(guān)聯(lián),但在我搜索使用隊列的多處理的示例時,這首先出現(xiàn)在谷歌上。
這是一個基本的示例類,您可以實例化并將項目放入隊列中,并且可以等到隊列完成。這就是我所需要的一切。
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()
添加回答
舉報