当我们使用创建一条线程时,是否有问题呢?
ServerSocket socket = new ServerSocket();
while(true){
Socket s = socket.accept();//接受到socket请求后,创建一条线程进行操作
new Thread(s).start();
}
代码没问题,但在并发量大,问题就出现了。
100个连接启动100条线程,1000000个连接能启动如此多线程吗?
没有开发过大并发的项目,对此没考虑过。今天一个同事问,才有所体会。建立一定数量的线程池,进行处理
int nThreads = 200;
ExecutorService pool = Executor.newFixedThreadPool(nThreads ) ;
while(true){
pool.execute(new Runnable());
}
并发,线程同步上还有很多需要研究的东西~
下次再研究~