python - Python 中的 All-to-All 线程通信

标签 python multithreading communication pipe

感谢您的关注

我正在使用Python中的“线程”模块用Python编写一个模拟引擎。我的模拟器必须做的事情之一就是能够进行所有人对所有人的通信。假设有“n”个线程(所有 n 个线程都不是同一类的实例)。

例如我有 3 类线程

  • m 是类类型“Storage”的实例
  • s 是类类型“Super”的实例
  • c1、c2...cn 是类类型“Child”的实例

m、s、c1、c2、... cn 可能必须彼此进行 1:1 通信。彼此保持一对一的联系是否明智?我的解决方案是构建一个仲裁线程,它将接受消息并将它们路由到目标线程。这样,我周围的管道就会减少。您认为这是个好主意吗?

是否有现成的 python 模块/解决方案可以进行此类仲裁?

RRS

最佳答案

我认为您的广播Queue解决方案和EventBus线程是最常见的模式。 Queue 是标准库的一部分,使用单例队列并向注册消费者广播的线程实现起来很简单。

或者,您可以链接这些线程以形成一个循环,并将消息传递给后继者,忽略来自自身的消息。

关于python - Python 中的 All-to-All 线程通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9957985/

相关文章:

python - 在前导斜线之前不丢弃的 os.path.join() ?

python - 如何将 Django View 与 Angular js 前端连接?

python - 在opencv4nodejs中如何在调用drawRectangle时设置Alpha

c# - 在同一台机器上托管的 C# 和 Python 应用程序之间的通信

automation - 在 .NET 中创建通过 OPC 进行通信的应用程序的最佳起点在哪里?

python - marisa trie 后缀压缩?

c++ - 加载一批图像 - 线程分配

java - 死锁和资源排序

C++(11) "High Performance"并发单个写入器

architecture - 去中心化推特的设计