在一个过程中实现独立的通信

时间:2010-01-04 09:03:07

标签: java process multithreading communication

是否有同一进程中的两个线程可以在不知道彼此接口的任何信息的情况下进行通信?

基本上,一个线程是STOMP服务器,另一个是客户端。他们应该以直接的方式(而不是通过套接字)进行通信,它应该独立于实现,所以我不能假设任何一个线程正在等待某些公共消息队列上的消息。 我正在寻找的是java中的某种内置机制,它允许同一进程中的线程进行通信。

有这样的机制吗?如果没有,还有其他方法可以解决这个问题吗?

3 个答案:

答案 0 :(得分:3)

您可以使用并发消息队列,其中线程可以发布和接收消息。现在每个线程必须能够创建自己的消息并理解其他线程的消息,而不是知道对方的线程接口。 通过为这些消息使用不同的接口,这很容易。作为奖励,有多种队列可供并发访问,因此您可以选择最适合您的方案的队列。

答案 1 :(得分:0)

好吧,你可以有第三个线程作为留言板。但是,你必须希望这两个线程可以事先就协议达成一致。它也会很慢。

答案 2 :(得分:0)

您能提供更多详细信息/示例吗? “沟通”究竟是什么意思?

有几种方法我可以考虑这样做,共享(全局)状态,PipedInputStream / PipedOutputStream等等。但细节将取决于你想要做什么。 / p>