multithreading - 处理同一应用程序的多个线程的有效方法

标签 multithreading performance sockets

我有一个多客户端单服务器应用程序,其中客户端和服务器通过套接字连接。客户端和服务器位于不同的计算机中。

在客户端应用程序中,客户端套接字连接到服务器,并定期将数据发送到服务器。

在服务器应用程序中,服务器套接字监听客户端连接。连接客户端后,将创建新线程供客户端接收数据。

例如:1个客户端=服务器创建1个用于接收数据的线程。如果服务器有10000个客户端,则服务器将创建10000个线程。这似乎也不是很好,并且可扩展。

我的应用程序使用Java。

是否有替代方法可以解决此问题?

提前致谢

最佳答案

这是一个典型的C10K问题。有解决此问题的模式,例如Reactor pattern

Java NIO是可以以非阻塞方式处理传入请求的另一种方式。参见引用实现here

关于multithreading - 处理同一应用程序的多个线程的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50055803/

相关文章:

multithreading - 使用 Rust 从不同线程终止循环

Android线程循环检查httppost

Java 和多核

C - MPI 性能缓慢

javascript - IE 检测 Javascript 版本

java - Java 上 Gmail 的 SMTP 客户端使用套接字身份验证问题

java - 这可以用套接字实现吗?

c# - 从 C# 调用 C++ 线程

c++ - 修改 WAH 压缩位图性能

http - Lisp 的奇怪 HTTP 问题/错误