对于此学校作业,我需要使用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一起使用的“服务器”代码-
阻塞队列是一种已同步的数据结构,让我们从中读取数据的线程(“消费者”线程)等待直到队列中有待读取的数据。
“生产者”线程是“推送”队列中数据的线程。
我建议您使用blocking queue实现之一。
我还建议您阅读有关"consumer producer“模式的更多信息。
阻塞队列还消除了在多线程编程中不建议的“忙等待”。