我有特定数量的线程,比如说 5 个线程:A、B、C、D 和 E。
我很想知道有哪些具体方法来设计这些线程之间的通信接口(interface),以便接收者线程可以区分来自不同发送者的消息。 此外,每个线程还应该能够向自己发送消息。
例如,我可以将每个线程设计为具有多个 BlockingQueue
,每个发送者线程一个?另外,每个线程都有一个可以向其发送消息的接收者列表?值得推荐吗?
在java中实现这个的最好/合理的方法是什么?
最佳答案
您希望每个线程之间有一个消息传递接口(interface)。我将通过首先创建消息传递接口(interface)来构造程序,然后构造线程 A 的类和线程 B 的类并将接口(interface)作为参数传递给两者。然后启动线程。
对于 java,TransferQueue类看起来是一个不错的选择。如果您不需要它的某些功能,您也可以使用 ConcurrentLinkedList 。使用两个进行双向通信。
关于java - 多线程之间的通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28551151/