我有一个简单的任务,这样的:Python的multiprocessing.Queue VS multiprocessing.manager()队列()
def worker(queue):
while True:
try:
_ = queue.get_nowait()
except Queue.Empty:
break
if __name__ == '__main__':
manager = multiprocessing.Manager()
# queue = multiprocessing.Queue()
queue = manager.Queue()
for i in range(5):
queue.put(i)
processes = []
for i in range(2):
proc = multiprocessing.Process(target=worker, args=(queue,))
processes.append(proc)
proc.start()
for proc in processes:
proc.join()
似乎multiprocessing.Queue能做到这一点,我需要所有的工作,但在另我看到很多manager()的例子,Queue()并不能理解我真正需要的东西。看起来像Manager()。Queue()使用某种代理对象,但我不理解这些目的,因为multiprocessing.Queue()在没有任何代理对象的情况下执行相同的工作。
所以,我的问题是:
1)什么是真正的差异multiprocessing.Queue和物体之间通过multiprocessing.manager()返回队列()?
2)我需要使用什么?
这可能有帮助。 https://code.activestate.com/lists/python-tutor/99586/ –