0

我只是想了解如何用 Java 编写一个每个请求线程的 TCP 服务器。我已经编写了一个每个连接线程的服务器,它运行 serverSocket.accept() 并在每次新连接进入时创建一个新线程。

如何将其修改为每个请求的线程服务器?我想传入的连接可以放入某种队列,但是你怎么知道哪个已经发出请求并准备好服务?

我怀疑这里需要 NIO,但不确定。

谢谢。

[编辑]

需要明确的是-原始的“服务器”只是我编写的一个循环,它等待连接,然后将其传递给新线程。

讲师提到了“每个请求线程”架构,我想知道它是如何“在幕后”工作的。

我对它如何工作的第一个想法可能是完全错误的。

4

2 回答 2

1

您可以使用选择器来实现您的目标。是一个很好的例子,你可以参考。

于 2013-08-18T03:37:46.227 回答
0

您可以使用普通 IO,或阻塞 NIO,(或非阻塞 NIO,或异步 NIO2)每个连接可以有多个线程(或共享工作线程池),但除非这些正在等待数据库等慢速服务,否则这可能更快(如果你想要低延迟,它可以慢得多)

于 2013-08-18T06:22:25.973 回答