七大参数
int corePoolSize : 指定了线程池中的常驻的核心线程数量
int maximumPoolSize : 线程池中最大线程数量
long keepAliveTime : 当线程池线程超过corePoolSize时,多余的空闲线程的存活时间。即,超过了corePoolSize的空间时间,在多长时间被销毁
TimeUnit unit : keepAliveTime的单位
BlockingQueue<runnable> workQueue : 任务队列,被提交但尚未被执行的任务</runnable>
RejectedExecutionHandler handler : 拒绝策略,当任务太多,来不及处理,如何执行拒绝任务
ThreadFactory threadFactory : 线程工厂,用于创建线程,可以利用guava线程工厂,默认也可
工作原理
提交任务后的执行过程
1、判断核心线程池是否已满,如果不是,则创建线程执行任务
2、如果核心线程池满了,判断队列是否满了,如果队列没满,将任务放在队列中
3、如果队列满了,则判断最大线程池是否已满,如果没满,创建线程执行任务
4、如果线程池也满了,则按照拒绝策略对任务进行处理