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线程池来处理更多的并发请求

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗
  • ¥15 随身WiFi网络灯亮但是没有网络,如何解决?
  • ¥15 gdf格式的脑电数据如何处理matlab
  • ¥20 重新写的代码替换了之后运行hbuliderx就这样了
  • ¥100 监控抖音用户作品更新可以微信公众号提醒
  • ¥15 UE5 如何可以不渲染HDRIBackdrop背景
  • ¥70 2048小游戏毕设项目
  • ¥20 mysql架构,按照姓名分表
  • ¥15 MATLAB实现区间[a,b]上的Gauss-Legendre积分