线程池

使用ThreadPoolExecutor创建,不要使用Executors进行创建

3大方法、七大参数、4种拒绝策略

newSingleThreadExecutor() 创建单线程池
newCachedThreadPool() 创建可伸缩的线程池
newFixedThreadPool() 创建指定数量线程池
底层都是使用ThreadPoolExecutor进行创建。

ThreadPoolExecutor构造器的七大参数
public ThreadPoolExecutor(int corePoolSize, 核心线程池数量 固定开启的线程池数量
int maximumPoolSize, 最大线程池数量 如果队列满了,会在核心线程池的基础上按需增加
long keepAliveTime, 存活时间 如果超过核心线程数量的线程一定时间内没有被分配,则销毁线程
TimeUnit unit, 时间单位
BlockingQueue workQueue, 阻塞队列
ThreadFactory threadFactory, 线程工厂
RejectedExecutionHandler handler) 拒绝策略

四种拒绝策略:队列满了之后采取的策略
CallerRunsPolicy 调用者线程自己执行
AbortPolicy 默认策略。拒绝并抛出异常
DiscardPolicy 拒绝并丢弃任务
DiscardOldestPolicy 丢弃最老的任务

posted @ 2021-11-03 20:34  GitHub-ahao  阅读(62)  评论(0)    收藏  举报