线程泄露问题:线程由于未捕获异常而退出
//典型的线程池工作线程结构
public class ClassicThreadPoolWorkerThread extends Thread{
@Override
public void run() {
Throwable t=null;
try {
while(!isInterrupted()){//处理中断
runTask(getTaskFromQueue());
}
}catch (Throwable e){
t=e;//处理未检查异常
}finally {
threadExit(this,t);
}
}
private void threadExit(Thread thread, Throwable t) {
}
private void runTask(Runnable taskFromQueue) {
}
private Runnable getTaskFromQueue() {
}
}