我有特定数量的线程,比如说 5 个线程:A、B、C、D 和 E。
我很想知道有哪些具体方法来设计这些线程之间的通信接口,以便接收者线程可以区分来自不同发送者的消息。 此外,每个线程还应该能够向自己发送消息。
例如,我可以将每个线程设计为有多个
BlockingQueues
,每个发送者线程一个吗?另外,每个线程都有一个可以向其发送消息的接收者列表?推荐吗?
在java中实现这个的最好/合理的方法是什么?
您需要每个线程之间有一个消息传递接口。我将通过首先创建消息传递接口,然后构造线程 A 的类和线程 B 的类并将接口作为参数传递给两者来构建程序。然后启动线程。
TransferQueue
类看起来是一个不错的选择。如果您不需要它的某些功能,您也可以只使用 ConcurrentLinkedQueue
。使用两个进行双向通信。