java - 多线程之间的通信

标签 java multithreading messaging

我有特定数量的线程,比如说 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/

相关文章:

Java,clone()问题?

java - 为什么我的 Java 线程似乎只在一个核心上运行,而我的机器有两个核心?

vb.net - 如何与多个线程共享一个资源(一个串口)

java - 保护映射免受 java 中线程的影响

java - StringBuffer new() 和 delete(0, sb.length()) 哪个更高效?

java - 按升序排列数组列表

具有多线程响应处理程序的 Python http 服务器

java - 如果队列/数据库出现故障,何时关闭消息处理?

Twilio IP 消息传递/聊天支持文件传输吗?

java - Java可以监听多个RabbitMQ队列吗?