Java 线程池提交任务流程
Java 线程池ThreadPoolExecutor提交任务流程如下:
流程解释为:
- 当线程池新加入一个线程时,首先判断当前线程数,是否小于coreSize,如果小于,则执行步骤2,否则执行3
- 创建新线程添加到线程池中,跳转结束
- 判断当前线程池等待队列是否已满,若已满,则跳转至步骤5
- 加入等待队列,等待线程池空闲,跳转结束
- 判断当前线程数是否已达到maximumPoolSize,若未达到,则跳转至步骤7
- 执行线程池拒绝策略,跳转结束
- 创建一个新线程,执行任务
- 跳转结束