- 任务提交给线程池
- 如果线程池中线程数小于核心线程数,则创建一个新的线程来执行该任务。否则进入步骤3
- 提交任务时,线程池中的空闲的线程数为0并且线程数等于核心线程数,则观察线程池中的任务队列是否已满,如果未满则将任务添加到任务队列,否则进入步骤4
- 如果最大线程数大于核心线程数,并且总线程数小于最大线程数,则创建一个新的线程来执行该任务。否则进入步骤5
- 当任务队列已满时,就执行拒绝策略(后续详解拒绝策略
ThreadPoolExecutor
public ThreadPoolExecutor(int corePoolSize,
int maximumPoolSize,
long keepAliveTime,