参数
corePoolSize :核心线程数量
maximumPoolSize :线程最大线程数
workQueue :阻塞队列,存储等待执行的任务 很重要 会对线程池运行产生重大影响
keepAliveTime :线程没有任务时最多保持多久时间终止
unit :keepAliveTime的时间单位
threadFactory :线程工厂,用来创建线程
rejectHandler :当拒绝处理任务时的策略
他们之间的区别主要是:缓存队列-核心线程数-最大线程数之间的关系。
当需要加入进程时:
(1)当前线程数小于核心线程数,当前线程直接运行。
(2)当前线程数大于核心线程数,当前线程会加入到阻塞队列中,
(3)此时阻塞队列未满,直接加入,等待机会运行。
(4) 此时阻塞队列已满,但此时线程数小于最大线程数,则直接创建线程运行。
(5)此时线程数大于等于最大线程数,则实行线程池自定义的拒绝策略。
由此可以思考:
1、线程池如何单线程运转