234364575675
2013-07-03 11:23
浏览 294
已采纳

关于多线程问题,求解答!

创建主线程

Thread desktopServerThread = new Thread(new Server());
  desktopServerThread.start();

 

 

public class Server implements Runnable {

  public void run() {
  ServerSocket serverSocket = null;
  try {
   serverSocket = new ServerSocket(4321);
   while (true) {
    Socket socket = serverSocket.accept();
    /* 监听到客户端访问,则创建线程提供服务 */
    ServerWorker worker = new ServerWorker(socket);
    new Thread(worker).start();
   }

  

 }

 

 

 

 class ServerWorker implements Runnable {
  private String result = "";
  private Socket socket = null;

  ServerWorker(Socket socket) {
   this.socket = socket;
  }

  @Override
  public void run() {

执行操作。。。。。。。。

}

}

 

 

问题:

1:我的主线程接到访问后,会创建多个线程来提供服务吗?

2:创建的多个线程后,系统会自动回收吗?    如果访问过多的话,,怎么处理???

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • stang003 2013-07-03 13:53
    已采纳

    [quote]1:我的主线程接到访问后,会创建多个线程来提供服务吗?[/quote]
    是的,server端的线程一直处于阻塞状态,每来一个客户端的请求就会创建一个子线程去run

    [quote]2:创建的多个线程后,系统会自动回收吗? 如果访问过多的话,,怎么处理???[/quote]
    一个线程对象跑结束后,系统会自动回收的。访问过多,你可以利用ThreadPool线程池来处理更多的并发请求

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题