线程池关键参数
核心线程数 corePoolSize:线程池维护线程最少数量
最大线程数 maxPollSize:线程池维护线程最多数量
空闲时间 keepAliveTime:线程池允许线程的空闲时间
时间单位 unit:线程池允许线程空闲时间的单位
缓冲队列 workQueue:线程池使用的缓冲队列
拒绝处理策略 handler:线程池对拒绝任务的策略
线程池工作原理(增长策略)
1,线程池中线程数量小于核心线程数,则新建线程处理请求任务
2,线程池中线程数量等于核心线程数,缓冲队列未满,则将请求任务添加到缓冲队列
3,线程池中线程数量等于核心线程数,缓冲队列已满,线程数小于最大线程数,则新建线程处理请求任务
4,线程池中线程数量等于核心线程数,缓冲队列已满,线程数等于最大线程数,则根据拒绝处理策略处理请求任务
线程池的拒绝策略
1,CallerRunsPolicy:执行程序没有结束的话直接运行该任务的 execute 方法
2,AbortPolicy:直接抛错 RejectedExecutionException
3,DiscardPolicy:舍弃当前任务,任务将被删除
4,DiscardOldestPolicy:执行程序没有结束的话,舍弃缓存队列头部的任务,重试当前任务