bio tcp为什么要多线程

https://blog.csdn.net/baidu_17508977/article/details/53084768

Tcp编程下的多线程任务

 

主要内容:

1.博主分三步走:thread、自定义线程池、jdk线程池

2.核心代码,这里给出第2中自定义线程池:

    public static void main(String[] args) throws Exception {

        final ServerSocket server = new ServerSocket(PORT);
          //最多有THREADPOOLSIZE个线程在accept()方法上阻塞等待连接请求  
        for(int i=0;i<THREADPOOL_SIZE;i++){
            Thread thread = new Thread(){
                @Override
                public void run(){
                    //线程为某连接提供完服务后,循环等待其他的连接请求  
                    while(true){
                        //阻塞等待
                        try {
                            Socket client = server.accept();
                            System.out.println("与客户端连接成功");
                            ServerThread.execute(client);
                        } catch (IOException e) {

                            e.printStackTrace();
                        }

                    }
                }
            };
            //开启线程
            thread.start();
        }
    }

  

抽象:

while

Socket client = server.accept(); ServerThread.execute(client);

 

posted on 2018-08-01 14:48  silyvin  阅读(519)  评论(0编辑  收藏  举报