繁体   English   中英

线程之间的Java通信

[英]Java communication between threads

我正在编写一个程序来演示距离矢量路由算法。 该程序创建多个路由器及其路由表。 每个路由器都是使用二维数组的自己的线程。 我需要让线程将它们的表相互发送。 我不确定如何在这些线程之间进行通信。 我查看了套接字,但没有在任何端口上侦听。 我不确定如何使用管道,或者这是否是最佳选择。 任何的意见都将会有帮助。

如果您运行两个不同的进程,则可以使用套接字,JMS或文件来共享信息。

如果在一个进程中仅运行两个线程,则应创建一些线程安全的存储,为此请说ConcurrentLinkedQueue。 这是其中的更多内容http://javarevisited.blogspot.com/2013/02/concurrent-collections-from-jdk-56-java-example-tutorial.html

让每个实现您的路由线程的Runnable或Thread公开(例如)一个java.util.concurrent.TransferQueue <YourTableType>并将表交付给它。 路由线程可以在空闲时从传输队列中提取表。

java.util.concurrent软件包的文档非常齐全,因此值得一看。

为什么不创建服务器/客户端并从客户端向服务器进行呼叫,然后服务器将答案发送给另一个客户端?

您将需要创建2个文件server.java和client.java,通过TCP建立客户端/服务器连接,通过UDP从客户端到客户端的消息;

如果您需要任何帮助,请问一下,我在大学里做了一些类似的项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM