核心构造方法:ThreadPoolExecutor(int corePoolSize,int maximumPoolSize,long keepAliveTime,TimeUnit unit,BlokingQueueworkQueue){}
重要的参数:
1, corePoolSize:核心线程数
,2, maximumPoolSize:最大线程数
3, keepAliveTime , 存活时间
corePoolSize和 maximumPoolSize的区别:
keepAliveTime :当线程池中的线程数超过核心线程数和队列总数,但是小于最大线程数的时候,threadPooLExecutor会请求“老板”再派几个工人来执行,那么会有以下两种情况:
1,任务不再过来了-keepAliveTime
2,任务仍然继续过来
当处于1的情况下,既然是借的工人来执行操作,那么什么时候就可以还回去呢,就是keepAliveTime 设定的时间
当处于2的情况下,借来的工人还是忙不过来,那么就只好拒绝接受了,即RejectedExecutionHandler
附一张简单的线程池运行原理