日期:2014-05-20  浏览次数:20605 次

关于executorservice的使用
我在服务器端监听了两个端口,这两个端口都是要对多个线程进行处理的
在对多线程的处理上我采用的是executorservice来处理
现在问题是我在对这两个端口处理的时候都要用到executorservice,请问在一个程序里面能同时用多个executorservice吗

------解决方案--------------------
木有问题
------解决方案--------------------
executorservice是用来做线程池的
这个和端口监听有关吗

我觉得你的设计上有问题,端口监听这种动作应该是阻塞-处理-阻塞的模式
线程池的处理概念是对单个任务的处理

你应该考虑下自己的设计了
------解决方案--------------------
mei wenti
------解决方案--------------------
事实上 我觉得是有问题的
在于线程池来说,他针对的是任务
每个任务,在理论上来说应该是有自身独立的上下文环境
每个任务只执行一次
所以在线程池的任务内就不应该有while循环了,那样就失去使用线程池的意义了
你把socket对象直接传入的话,还得安排核心线程的Lock

在于ServerSocket来说,每接收一次socket,应该给予一个单独的线程进行处理,而不是线程池的任务


至于多个线程池,是不会有相互影响的,每个线程池会负责维护自身的核心线程和任务队列
------解决方案--------------------
没有必要使用两个 ExecutorService,用一个然后让这两个共享这个就可以了。