我有两种类型的流程。
我希望进程B
等待来自进程A
的消息。在A
发送消息后,进程B
应处理该消息并再次等待。
此外,我将有多个流程A
和流程B
的实例。因此,所有B
进程都应将消息发送到所有A
进程。
我正在查看类似signals
的内容,但附加了一个字符串。
这样做的最佳方式是什么?
我知道我可以创建一个pipe
并继续阅读pipe
中的while
,但这似乎是不合适的。此外,一旦阅读,它是否会从pipe
删除?
注意:这些进程都不是彼此的子进程。
答案 0 :(得分:1)
这就是我最后做的事情......
将生产者流程制作成module
并将其导入到使用者中。因此,这两个过程都可以共享变量。
生产者线程将继续生产,消费者线程将继续消耗。我正在使用condition
来同步数据threading.Condition()
。
每个制作人主题:
condition
notifyAll()
condition
每个消费者线程:
condition
condition
condition
... 这只是一个高级别的观点。在我的例子中,我有不同类型的生产者线程,每个生成者线程产生不同的数据并且意味着特定的消费者群体。所以,我有list of condition
。
答案 1 :(得分:0)
我建议对ZeroMQ进行python绑定:http://www.zeromq.org/。 pyzmq,也许:https://github.com/zeromq/pyzmq