感谢您的关注
我正在使用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/