线程池的作用

本文详细阐述了线程池的优点,包括线程复用和控制并发数,介绍了newSingleThreadExecutor、newFixedThreadPool和newCacheThreadPool三种常见实现方法,以及ThreadPoolExecutor的七大参数和四种拒绝策略。重点讨论了最大线程数的设置策略。
摘要由CSDN通过智能技术生成

线程池的优点:
线程复用,控制最大的并发数,方便管理线程
避免频繁创建的开销
提高响应速度
线程池的三大实现方法:
newSingleThreadExecutor(),创建单个线程的线程池
newFixedThreadPool(int nThreads),创建固定大小的线程池
newCacheThreadPool,创建大小可变的线程池
线程池的七大参数:
查看底层代码,发现上述三种方法的本质都是new ThreadPoolExecutor()
这个方法里有七个参数,分别是:
corePoolSize:核心线程数
maximumPoolSize:最大线程数
keepAliveTime:空闲存活时间
unit:超时单位
workQueue:阻塞队列 (single、fixed默认LinkedBlockingQueue,Cache默认为SynchronousQueue)
threadFactory:线程工厂(默认为defaultThreadFactory)
handler:拒绝策略(默认为AbortPolicy)

线程池的四个拒绝策略
AbortPolicy 直接抛出异常
DiscardPolicy:不抛异常,直接丢任务
DiscardOldestPolist:不抛异常,尝试和最先开始的线程争抢资源,失败则丢失
CallerRunsPolicy:交由main线程处理

最大线程数怎么设置?
CPU密集型:根据本机的内核数来定,大于等于
IO密集型:根据程序中大型Io耗时线程,保持大于等于

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值