同时开始处理python3

时间:2017-10-20 17:42:41

标签: python multithreading python-3.x multiprocessing

我正在尝试在Python 3多处理中模拟生产者 - 消费者设计。主要问题是生产者开始但消费者在生产者完成之前不会开始(在这种情况下,消费者没有开始,因为生产者永远不会结束)。

以下是代码:

getSubCat()

我不知道我的代码有什么问题。我使用多线程测试它并且它可以工作,所以我猜有些东西我误解了多处理。

谢谢。

1 个答案:

答案 0 :(得分:1)

我不确定您的队列是否是共享内存对象。我认为您的生产者正在写入其内存中的队列,而您的消费者正在从其内存中的队列中读取,但它们不是相同的内存,因此它们不会相互通信。我认为你需要一个“经理”。看文档。 https://docs.python.org/2/library/multiprocessing.html#sharing-state-between-processes

或使用队列的多处理版本。再次来自文档:https://docs.python.org/2/library/multiprocessing.html#exchanging-objects-between-processes