关注
主要说过程和核心参数
大概就是 : 默认情况,线程数为0, 此时来请求,则线程池new一个线程来执行, 如果
请求数大于了核心数值,根据参数来选择是否继续new线程, 直到线程数等于最大线程值;
此时在来任务,则压入到等待队列中,当等待队列满时,此时在来任务则会直接放弃;
当压力没有那么大时,线程池会回收线程数量直到 核心数 或者根据配置参数 可以达到0
corePoolSize:
核心池大小,默认情况下线程不会超过核心大小。
maximumPoolSize: 最大线程数,
当达到一定负载时,线程数会超过核心数,但始终小于最大线程数. 当负载较轻会回收线程至核心池数量
keepAliveTime:
表示线程没有任务执行时,的存活时间. 默认情况,当线程数大于核心小于最大数量时才会启用;
如果调用allowCoreThreadTimeOut(boolean)方法,线程数下界为0
unit:keepAliveTime的时间单位
workQueue:
阻塞队列,用来存储等待执行的任务。 一般很少使用abq和pbq,多用lbq和synchronousQueue.队列.
abq: arrayBlockingQueue队列,基于数组的先进先出,创建时必须指定大小
pbq: PriorityBlockingQueue 优先级队列
lbq: linkedBlockingQueue,基于链表的队列,默认长度为Integer.MAX_VALUE
synchronousQueue: 不保存任务,直接创建新线程
threadFactory:线程工厂
handler: 对拒绝任务的处理策略,四种参数.
abortPolicy(丢弃任务并抛异常),discardPolicy(丢弃任务不抛异常),DiscardOldestPolicy(丢弃最前面的任务),callerRunsPolicy(交由调用线程处理)
线程池构造函数: 实际都是指向最后一个构造函数;
workers: 工作集
allowCoreThreadTimeOut:
是否允许核心线程设置存活时间
poolSize: 线程池中当前线程数
largestPoolSize:
记录曾经出现过的最大线程数
completedTaskCount:
记录已经执行完的任务数
查看原帖
点赞 2
相关推荐
点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 第一次找实习,我建议__ #
16136次浏览 227人参与
# 面对职场PUA,是忍还是怼? #
22423次浏览 92人参与
# 联影求职进展汇总 #
98646次浏览 498人参与
# 从mentor身上学到了__ #
14624次浏览 248人参与
# 你认为工作的意义是什么 #
200156次浏览 1260人参与
# 秋招暂停,我将对以下公司做出处罚__ #
27173次浏览 124人参与
# 找工作时遇到的神仙HR #
1035932次浏览 5583人参与
# 外出实习被同学举报 #
1971次浏览 28人参与
# 你怎么评价今年的春招? #
140828次浏览 1380人参与
# 你上一次加班是什么时候? #
114826次浏览 699人参与
# 打工人的至爽时刻or至暗时刻 #
40713次浏览 221人参与
# AI了,我在打一种很新的工 #
112100次浏览 1272人参与
# 你的秋招第一面感觉怎么样 #
127248次浏览 795人参与
# 如果今天是你的last day,你会怎么度过? #
46070次浏览 293人参与
# 秋招我要惩罚这些公司 #
1767次浏览 22人参与
# 你听到的“最没用”的秋招建议 #
18429次浏览 215人参与
# 字节出了豆包coding模型 #
1734次浏览 22人参与
# 韶音科技求职进展汇总 #
58718次浏览 502人参与
# 2025秋招体验点评 #
43904次浏览 452人参与
# 你喜欢工作还是上学 #
80917次浏览 869人参与
# 工作以后,你父母对你啥态度 #
8397次浏览 90人参与

