1、提交线程任务,判断是否存在空闲线程;
2、存在空闲线程,则分配空闲线程,执行线程任务,如果不存在空闲线程,则判断是否超出核心线程数;
3、如果未超出核心线程数,则创建核心线程执行线程任务,如果超出则判断工作队列是否超出;
4、如果工作队列未满,则将任务加入工作队列中,等待空闲线程,等出现空闲线程时,分配空闲线程执行线程任务(从队头取出任务,最早进入工作队列中的任务),如果工作队列已满,这判断是否超出最大线程数;
5、如果未超出最大线程数,则创建非核心线程执行线程任务,如果超出最大线程数则执行拒绝策略;