以下,基于JDK1.8。 1. 线程复用 我们知道Thread.start执行之后,线程就不能再次执行了,那ThreadPoolExecutor是如何做到线程复用的呢? 原理很简单,在实际执行的线程外部套一个Thread,外层Thread的run方法while循环执行实际执行线程的run方法,实现线程的复用并且执行之后不销毁。下面是伪代码: // 任务等待队列 BlockingQueue<Runnable> taskQueue = new LinkedBlockingQueue(); new Threa…