一开始来任务,开启核心线程,如果线程池里的线程数小于core size,则创建核心线程,即时有空闲的核心线程,也是创建新线程,直到达到core size。
再来新任务时,如果核心线程有空闲线程,则由空闲核心线程执行;如果没有空闲的核心线程,则加入到队列等待调度。
当队列满时,又来新任务,则开启临时线程,这个新来的任务由临时线程处理。
之后,临时线程和核心线程一起处理队列中的任务。
如果核心线程和临时线程都满负荷且队列已满,又有新任务来,则按reject策略处理(RejectedExecutionHandler),默认的策略是拒绝并报错。
当任务被处理完,临时线程在keepAliveTime时间内没有执行过任务,则销毁掉。