Skip to main content
 首页 » 编程设计

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

2025年05月04日9qq号

我有两种类型的流程。

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

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

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

执行此操作的最佳方法是什么?

我知道我可以创建一个 pipe 并在 while 中继续读取 pipe,但它似乎没有效率。另外,它不会在读取后从 pipe 中删除吗?

注意:没有一个进程是彼此的子进程。

请您参考如下方法:

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

将生产者进程做成一个模块并导入到消费者中。因此,这两个进程可以共享变量。

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

每个生产者线程:

  • 获取条件
  • 将数据写入全局变量
  • 调用notifyAll()
  • 释放条件

每个消费者线程:

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

这只是一个高级 View 。在我的例子中,我有不同类型的生产者线程,每个生产者线程产生不同的数据,并针对特定的消费者群体。所以,我有一个条件列表。

Reference on condition