时验证一次 , 添加到线程执行 时验证一次 ;
可能存在这种情况 , 在上次验证线程运行状态之后 , 有可能 该线程就立刻被销毁了 ;
也可能存在进入该方法后 , 线程池被销毁的情况 ;
因此我们 反复验证线程状态..., 如果需要在线程停止时回滚队列 , 如果没有线程就创建新线程 ;
先调用 isRunning( c ) 判断线程是否在运行中 , 只有运行状态时 , 线程池才能接收任务 ,
先 将任务添加到队列 中...如果不能将任务放入队列中 , 尝试创建一个新线程 ;
如果创建线程失败 , 说明当前线程池关闭 , 或者线程池中线程饱和 , 此时 拒绝执行该任务 ;
else if (!...如果任务被成功放入 线程池任务 队列 , 不管我们此时是否应该添加线程 , 都需要进行双重验证 ;
* 双重验证 : 添加到任务队列时验证一次 , 添加到线程执行时验证一次 ;...如果不能将任务放入队列中 , 尝试创建一个新线程 ;
* 如果创建线程失败 , 说明当前线程池关闭 , 或者线程池中线程饱和 , 此时拒绝执行该任务 ;
*/