线程池原理

线程池关键参数

核心线程数 corePoolSize:线程池维护线程最少数量
最大线程数 maxPollSize:线程池维护线程最多数量
空闲时间 keepAliveTime:线程池允许线程的空闲时间
时间单位 unit:线程池允许线程空闲时间的单位
缓冲队列 workQueue:线程池使用的缓冲队列
拒绝处理策略 handler:线程池对拒绝任务的策略

线程池工作原理(增长策略)

1,线程池中线程数量小于核心线程数,则新建线程处理请求任务
2,线程池中线程数量等于核心线程数,缓冲队列未满,则将请求任务添加到缓冲队列
3,线程池中线程数量等于核心线程数,缓冲队列已满,线程数小于最大线程数,则新建线程处理请求任务
4,线程池中线程数量等于核心线程数,缓冲队列已满,线程数等于最大线程数,则根据拒绝处理策略处理请求任务

线程池的拒绝策略

1,CallerRunsPolicy:执行程序没有结束的话直接运行该任务的 execute 方法
2,AbortPolicy:直接抛错 RejectedExecutionException
3,DiscardPolicy:舍弃当前任务,任务将被删除
4,DiscardOldestPolicy:执行程序没有结束的话,舍弃缓存队列头部的任务,重试当前任务

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容