线程池。。是否有必要实现一个监控线程?
目标: 线程一旦 timeout,就会被从线程池中清除掉。
有两种方案
1. 设计工作线程,使之有timeout自检的功能,超时之后,自己退出,相当于是自杀;
2. 工作线程没有自检功能;设计一个单独的监控线程,发现线程池中有超时线程,kill之,相当于他杀;
一般都认为方案1比较好,因为让线程自杀是教科书上提到的嘛。。
看到书上说,不推荐爱从线程的外部去杀死一个线程;我想问的是,对于方案2,真的是那么不堪嘛?有什么比较好的线程池,对于方案2,有较好的支持?
谢谢!!
------解决方案--------------------java自带非常好的线程池。ThreadPollExecutor。
可以设置keepAlive时间,空闲过期就会你说的自杀。