如何使用python信号在独立进程之间发送消息?

时间:2013-01-17 08:38:53

标签: python ipc

我有两种类型的流程。

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

此外,我将有多个流程A和流程B的实例。因此,所有B进程都应将消息发送到所有A进程。

我正在查看类似signals的内容,但附加了一个字符串。

这样做的最佳方式是什么?

我知道我可以创建一个pipe并继续阅读pipe中的while,但这似乎是不合适的。此外,一旦阅读,它是否会从pipe删除?

注意:这些进程都不是彼此的子进程。

2 个答案:

答案 0 :(得分:1)

这就是我最后做的事情......

将生产者流程制作成module并将其导入到使用者中。因此,这两个过程都可以共享变量。

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

每个制作人主题:

  • 获取condition
  • 将数据写入全局变量
  • 致电notifyAll()
  • 发布condition

每个消费者线程:

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

这只是一个高级别的观点。在我的例子中,我有不同类型的生产者线程,每个生成者线程产生不同的数据并且意味着特定的消费者群体。所以,我有list of condition

Reference on condition

答案 1 :(得分:0)

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