我有两种类型的流程。
我希望进程 B 等待来自进程 A 的消息。一旦 A 发送消息,进程 B 应该处理消息并再次等待。
此外,我将拥有进程 A 和进程 B 的多个实例。因此,所有 B 进程都应该将消息发送到所有 A 进程。
我正在查看类似 signals 的内容,但附加了一个字符串。
执行此操作的最佳方法是什么?
我知道我可以创建一个 pipe 并在 while 中继续读取 pipe,但它似乎没有效率。另外,它不会在读取后从 pipe 中删除吗?
注意:没有一个进程是彼此的子进程。
请您参考如下方法:
这就是我最后做的......
将生产者进程做成一个模块并导入到消费者中。因此,这两个进程可以共享变量。
生产者线程将继续生产,而消费者线程将继续消费。我正在使用 condition 来同步数据,threading.Condition()。
每个生产者线程:
- 获取
条件 - 将数据写入全局变量
- 调用
notifyAll() - 释放
条件
每个消费者线程:
- 获取
条件 - 等待
条件 - 读取并处理全局变量中的数据
- 等待
条件...
这只是一个高级 View 。在我的例子中,我有不同类型的生产者线程,每个生产者线程产生不同的数据,并针对特定的消费者群体。所以,我有一个条件列表。
