一、ThreadPoolExecutor执行顺序:
线程池按以下行为执行任务
- 当线程数小于核心线程数时,创建线程。
- 当线程数大于等于核心线程数,且任务队列未满时,将任务放入任务队列。
- 当线程数大于等于核心线程数,且任务队列已满
- 若线程数小于最大线程数,创建线程
- 若线程数等于最大线程数,抛出异常,拒绝任务
注意:addWork(参数一,参数二),根据参数二 也就是boolean得参数值确定与最大线程数比较,还是与核心线程数比较;且线程数最大不能超过536870911 源码中为(1<<29)-1