服务器/客户端停止1个线程= 1个客户端

时间:2012-07-24 09:58:14

标签: java multithreading sockets

协议:TCP

我有一个服务器,其中SocketServer接受客户端并将套接字(由ss.accept()返回)放入数组中。

我有一个线程需要在准备好读取套接字时通知(客户端发送数据)。 该线程会将请求分派给其他线程进行处理,因此这个初始线程所做的事情非常简单快捷。

有可能吗?

我真的想避免1个线程= 1个客户端,并且有1个线程处理N个客户端。

1 个答案:

答案 0 :(得分:3)

我想你可能想看一下Java NIO的非阻塞IO方面,本文讨论了有关"Architecture of a Highly Scalable NIO-Based Server"的一些内容。 另外,我认为this question的答案对您有帮助。

通常非阻塞IO使用回调 - 当数据可用时,您的代码将需要注册处理程序以“回调”。在这种情况下,处理程序会将消息或数据发布到您的单个线程 - 这必须是线程安全的,以处理并发通知/回调。