对于这个学校作业,我需要使用 Java 线程模拟客户端服务器类型应用程序(不需要套接字等)。我该怎么做呢?
我需要一种方法来启动服务器并等待客户端调用它,然后它应该返回响应。我心目中的“API”是这样的:
server.start()
client1.connect(server)
client2.connect(server)
x = client1.getData()
y = client2.getData()
success1 = client1.sendData(1)
success2 = client2.sendData(2)
server|client.run 方法是什么样子的?假设我现在可以对方法调用进行硬编码。
最佳答案
我建议使用以下方法:
1. 拥有与阻塞队列一起使用的“服务器”代码 -
阻塞队列是一种同步的数据结构,让从中读取数据的线程(“消费者”线程)等待,直到队列中有数据要读取。
“生产者”线程是将数据“推送”到队列上的线程。
我建议您使用 blocking queue 之一实现。
我还建议您阅读更多有关 "consumer producer 的内容。 “模式。
阻塞队列还消除了“忙等待”的需要,这在多线程编程中是不推荐的。
关于java - 如何使用 Java 线程模拟客户端-服务器应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15038901/