我有一个ExecutorService可以为每个连接创建一个新线程:
boolean running;
Socket socket;
ExecutorService executorService= Executors.newCachedThreadPool();
ss=new ServerSocket(port);
while(running){
socket=ss.accept();
executorService.submit(new ConnectionThread(socket));
}
ConnectionThread构造函数如下所示,run方法太长,无法在此处发布:
Socket socket;
ConnectionThread(Socket socket){
System.out.println("connectionThread running...");
this.socket=socket;
}
当我在浏览器中刷新页面时,ConnectionThread构造函数告诉我已经创建了多个线程。为什么会这样?
之所以会这样,是因为浏览器出于不同目的打开了多个TCP连接。