2

我有两种类型的过程。

我希望 processB等待来自 process 的消息A。一旦A发送消息,进程B应该处理消息并再次等待。

此外,我将有多个 processA和 process实例B。因此,所有B进程都应该将消息发送给所有A进程。

我在看类似的东西signals,但附有一根绳子。

做这个的最好方式是什么?

我知道我可以创建 apipe并继续阅读pipein a while,但这似乎无能为力。另外,它不会从pipe一次阅读中删除吗?

注意:所有进程都不是彼此的子进程。

4

2 回答 2

1

这就是我最后做的...

将生产者进程制作成amodule并将其导入消费者。因此,两个进程可以共享变量。

生产者线程将继续生产,消费者线程将继续消费。我condition用来同步数据,threading.Condition().

每个生产者线程:

  • 获得condition
  • 将数据写入全局变量
  • 称呼notifyAll()
  • 释放condition

每个消费者线程:

  • 获得condition
  • 等待condition
  • 读取和处理全局变量中的数据
  • 等待condition...

这只是一个高级视图。在我的例子中,我有不同类型的生产者线程,每个线程都产生不同的数据,并针对特定的消费者群体。所以,我有一个list of condition.

条件参考

于 2013-01-27T10:10:21.860 回答
0

我建议将 python 绑定到 ZeroMQ:http ://www.zeromq.org/ 。pyzmq,也许:https ://github.com/zeromq/pyzmq

于 2013-04-21T17:03:11.020 回答