在我们向线程池中提交一个任务的时候,会先判断目前线程池中的workerCount是否小于核心线程数,如果小于则将这个任务封装成一个Worker,然后启动一个新线程;如果不小于则将这个任务添加到工作队列...,提交一个任务时,如果线程池中的线程数没有达到核心线程数,则会创建一个新的线程
maximumPoolSize: 最大线程池,工作队列满了的情况下,如果线程池中的线程数没有达到最大线程数,则会创建一个新线程...,失败继续下面的流程
workerCount >= corePoolSize,再次检查线程池是否正在运行,如果不在运行了就将该任务移除并执行拒绝策略
如果workerCount >= corePoolSize...&& 工作队列放不下了,再次尝试添加一个新线程,如果添加失败则执行拒绝策略
ThreadPoolExecutor#addWorker
该方法用于尝试向线程池中添加一个新的线程,如果线程池运行状态不正常...执行任务
通过上面的代码可以发现,提交任务的时候,如果创建了一个新的Worker实例,就相当于创建了一个新的线程,并且会启动该线程.