zoukankan      html  css  js  c++  java
  • Socket用线程池处理服务

    while(true){
        try{
    Socket clientSocket = serverSocket.accept();
    new Thread(new HandlerThread(clientSocket)).start;
    }catch (IOException e){

    System.out.println(this.getServerName()+"接收socket时发生异常");
    e.printStackTrace();
    }
    }
    服务器上可能发生一种拒绝服务攻击(denial-of-service),如果为每个连接生成一个新线程,大量几乎同时如站连接可能导致它生成极大数量的线程
    Java虚拟机最终会耗尽内存而崩溃,更好的办法是使用一个线程池来限制资源使用,50个线程应该过客,不论负载多大应该不会崩溃,可能会拒绝连接,但起码不会崩溃



    while(true){
        try{
    Socket clientSocket = serverSocket.accept();
    executorService.execute(new HandlerThread(clientSocket));
    }catch (IOException e){

    System.out.println(this.getServerName()+"接收socket时发生异常");
    e.printStackTrace();
    }
    }
     
     
  • 相关阅读:
    SVN
    jenkins可视化
    Tomcat
    防火墙
    keepalived
    MHA高可用
    http
    inotifywait
    DNS
    nginx
  • 原文地址:https://www.cnblogs.com/ffaiss/p/9835011.html
Copyright © 2011-2022 走看看