对于这种情况,可能有一个“最佳”设计模式-最好是最大程度地减少了全局可变状态和线程安全性问题-但我不太确定它是什么,这很简单,而且很客气: )。
假设我有10个线程。每个线程读取一个读取RFID信号的外部硬件设备。两个硬件可以拾取相同的信号。发生这种情况时,我的线程需要确定哪个设备接收到较强的信号,哪个设备接收到较弱的信号,并进行一些处理(在某些情况下会提交数据库)。因此,这些线程必须共享信息。
因此,我需要创建一个线程安全队列,所有数据读取器线程都可以向其中提交消息(使用锁,阻塞队列或其他方法),而其他任何人都不能向其提交消息。线程安全性很容易,但是我不希望此线程安全队列是全局/静态的,并且所有其他代码都可以访问。只允许我的阅读器线程访问它,而不允许程序的其余部分访问它。所以我不希望它是静态的全局或类似的东西。
我是否应该将所有线程组成某种共享父类结构的一部分,并使共享队列对父类私有?这可能会起作用,但是肯定有一个更好,更标准的设计模式可以解决此问题。提前致谢 :)