if (! isRunning(recheck) && remove(command))。要是线程池的状态不是Running并且remove成功。那就执行拒绝策略。
否则要是else if (workerCountOf(recheck) == 0)。判断要是核心工作线程数是0.那就添加一个没有任务的非核心工作线程进去。防止阻塞队列中的任务饥饿问题。这里就是有两种情况:1.构建线程池的时候,核心工作线程数是0。2.存在核心工作线程,但是核心工作线程允许超时,设置allowCoreThreadTimeOut为true。
else if (!addWorker(command, false))。执行到这里是上述添加到阻塞队列失败了。构建一个非核心工作线程,要是构建一个非核心工作线程成功那就结束。要是构建非核心工作线程也是失败的,那就执行拒绝策略。