最大值Java中运行套接字的线程数

时间:2017-09-18 17:33:47

标签: java multithreading sockets virtual-machine

我想创建一个接受来自客户端的TCP套接字连接的Java程序。 一旦客户端连接我的服务器,我就创建一个新线程来处理该客户端 我怀疑的是,如果我为使用单核处理器的服务器运行Ubuntu VM,我可以支持多少客户端?
另外,最大线程数是否取决于处理器的数量? 如果您想建议对客户端处理的服务器端代码进行一些优化,请执行此操作。这是代码片段:

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(); }

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

1 个答案:

答案 0 :(得分:0)

  

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

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

 Runtime.getRuntime().availableProcessors();
  

此外,最大线程数是否取决于数量   处理器?

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