【问题标题】:Max Number of threads running sockets in JavaJava 中运行套接字的最大线程数
【发布时间】:2017-09-18 17:33:46
【问题描述】:

我想创建一个接受来自客户端的 TCP 套接字连接的 Java 程序。 一旦客户端连接到我的服务器,我就会创建一个新线程来处理该客户端。
我的疑问是,如果我为具有单核处理器的服务器运行 Ubuntu VM,我可以支持多少个客户端?
另外,最大线程数是否取决于处理器的数量?
如果您想建议对客户端处理的服务器端代码进行一些优化,请这样做。这是sn-p的代码:

SS = new ServerSocket(8080);
while(1) {
Socket S = SS.accept();
BufferedReader DIS = new BufferedReader(new InputStreamReader(S.getInputStream()));
PrintWriter DOS = new PrintWriter(S.getOutputStream(),true);
ServerThread CT = new ServerThread(S,DIS,DOS); // Class to handle client functions
Thread T = new Thread(CT);
T.start(); }

如您所见,客户端数量越多,创建的线程就越多。

【问题讨论】:

标签: java multithreading sockets virtual-machine


【解决方案1】:

我的疑问是,如果我正在为服务器运行 Ubuntu VM 单核处理器,可以支持多少客户端?

无论您创建多少线程,如果处理器可用,它们都会被执行。您可以通过在运行时使用Runtime 类检查可用处理器来优化这一点。

 Runtime.getRuntime().availableProcessors();

另外,最大线程数取决于线程数 处理器?

AFAIK,您可以创建线程,但它们只有在处理器可用时才会处于运行状态。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-28
    • 2016-07-23
    • 1970-01-01
    • 2023-03-11
    • 2014-03-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多