Windows Python 2.7 multiprocessing.Manager.Queue从子进程发出的死锁

时间:2015-07-05 16:57:01

标签: python python-2.7 queue multiprocessing deadlock

我试图让代码类似于以下示例正常工作:

www.mysite.com/product?id=4

即使队列为空,它也会在do_work1调用results.put_nowait时死锁!有时代码能够将所有工作放在队列中,但result.get会从results_consumer块调用,因为即使工作尚未消耗,它显然是空的。

此外,我查看了编程指南:https://docs.python.org/2/library/multiprocessing.html并相信上面的代码符合它。最后这篇文章中的问题:Python multiprocessing.Queue deadlocks on put and get似乎非常相似,并声称可以在Windows上解决(我在Windows 8.1上运行此功能)但是上面的代码由于父进程尝试而无法阻止加入子进程,因为逻辑类似于建议的答案。有关死锁原因以及如何解决的任何建议?另外一般来说,什么是让多个生产者为消费者提供在python中处理的结果的最佳方法?

0 个答案:

没有答案