个人理解:
runWorker()方法中,while 循环调用 getTask()方法,
getTask()方法 for(;;)中,首先判断是否shutdown(),或者worker count > maximumPollSize,需要回收线程,判断timeOut == true,然后return null,
其中判断timeOut==true,代码块如下
try {
Runnable r = timed ?
workQueue.poll(keepAliveTime, TimeUnit.NANOSECONDS) :
workQueue.take();
if (r != null)
return r;
timedOut = true;
} catch (InterruptedException retry