**利用线程池实现ServerSocket的多客户端连接**------------------------------
实际应用中,对于Socket通信而言基本都是多个客户端连接服务器端,因此简单的ServerSocket/Socket组合就无法满足要求了,而老是新开线程的话又太浪费资源,这里就用到Java自带的线程池ThreadPoolExcutor技术来实现多客户端连接服务端**
ThreadPoolExcutor类**
对原理很感兴趣的朋友可以直接看JDK源码,如果跟我一样对于纯英文的JDK看着头疼也可以度娘关于ThreadPoolExcutor类的源码解释,缺点就是不排除翻译可能不准确,所以看中文翻译版解释时注意仅作为参考,以实践为准,这里贴出一个解释的比较好的博客:
> http://www.cnblogs.com/zhanjindong/p/java-concurrent-package-ThreadPoolExecutor.html
获取ThreadPoolExcutor类的实例:
ThreadPoolExecutor pool=new ThreadPoolExecutor(5,10,3,TimeUnit.SECONDS,new ArrayBlockingQueue(1000));
四个参数的含义:
第一个,核心池大小;
第二个:最大线程数量,当线程数已经达到了核心池数量时,新添加的任务就会额外的开启新线程去运行,但不能超过第二个参数值,
第三个参数就是空闲线程休眠时间最大值,其单位就是第四个参数,超过这个最大值的空闲线程会被关掉,但总数量不会小于核心池大小;