我有一个多客户端单服务器应用程序,其中客户端和服务器通过套接字连接。客户端和服务器位于不同的计算机中。
在客户端应用程序中,客户端套接字连接到服务器,并定期将数据发送到服务器。
在服务器应用程序中,服务器套接字监听客户端连接。连接客户端后,将创建新线程供客户端接收数据。
例如:1个客户端=服务器创建1个用于接收数据的线程。如果服务器有10000个客户端,则服务器将创建10000个线程。这似乎也不是很好,并且可扩展。
我的应用程序使用Java。
是否有替代方法可以解决此问题?
提前致谢
最佳答案
这是一个典型的C10K问题。有解决此问题的模式,例如Reactor pattern
Java NIO是可以以非阻塞方式处理传入请求的另一种方式。参见引用实现here
关于multithreading - 处理同一应用程序的多个线程的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50055803/