线程池执行逻辑梳理

从核心参数讲起
1.核心线程数corePollSize
含义: 线程存活的线程数。
作用: 用于判断线程数量是否大于等于corePollSize,如果小于则addWorks创建新线程;否则加入阻塞队列当中。
2:最大线程数
含义:线程池允许的最大线程数。
作用: 用于判断是否开启拒绝策略。当线程数大于等于核心线程数,加入阻塞队列之后,当阻塞队列满了之后,会创建临时线程(非核心线程),当临时线程+核心线程大于最大线程数则会触发拒绝策略。
3.workQueue任务队列(阻塞队列)
含义:存储待执行的任务。
作用:存储任务,当线程数大于等于核心线程数时加入。任务队列有两种类型,有界队列和无界队列。两者区别:arrayBockingQueue有界,当队列满的时候会开始拒绝策略,linkBockingQueue无界队列,相反,理论上可以容纳无线任务。
4.空闲时间(线程存活时间)keepAlivesTime。
含义:线程存活时间。
作用:当线程数大于等于核心线程数,进入阻塞队列之后,并且阻塞队列满了之后但不大于最大线程数,创建的非核心线程(临时线程),存活的时间。
5.unit时间单位:
含义:非核心线程存活时间的单位。
6.handler拒绝策略。
含义:队列已满并且大于最大线程数之后,开始的拒绝策略。
作用:拒绝策略有四种,默认为AbortaPolic策略,直接抛出拒绝策略异常。
第二种由提交任务的线程自己执行任务。
第三种直接丢弃任务不做处理。
第四种丢弃队列种最老的任务,然后尝试提交新任务。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值