关注
主要说过程和核心参数
大概就是 : 默认情况,线程数为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
相关推荐
04-11 15:07
哈尔滨工业大学 Java 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 父母问你工作找得怎么样,怎么回 #
5902次浏览 82人参与
# 面试被问期望薪资时该如何回答 #
389278次浏览 2172人参与
# 厦门银行科技岗值不值得投 #
19544次浏览 427人参与
# 从投递到OC,你用了多久 #
6893次浏览 61人参与
# 想从事Agent应该学习哪些技术? #
1145次浏览 36人参与
# 哪些公司面试还在问八股? #
2174次浏览 36人参与
# 什么人最适合大厂? #
3258次浏览 33人参与
# AI时代还有必要刷leetcode吗? #
1387次浏览 26人参与
# 有哪些公司在面试时考察AICoding? #
2163次浏览 29人参与
# HR面都在聊什么? #
2071次浏览 35人参与
# 哪一刻你突然觉得实习“有点值了” #
5501次浏览 49人参与
# 你的秋招第一面感觉怎么样 #
146341次浏览 814人参与
# 四大天坑是哪四家? #
113648次浏览 246人参与
# 一人一道大厂面试题 #
131603次浏览 1328人参与
# 哪些公司一直卡在简历筛选 #
109259次浏览 377人参与
# 总结:哪家公司最喜欢泡池子 #
170742次浏览 614人参与
# 计算机有哪些岗位值得去? #
394038次浏览 2865人参与
# 拿到offer之后,可以做些什么 #
106397次浏览 514人参与
# 春招至今,你收到几个面试了? #
146401次浏览 1651人参与
# 说说你知道的学历厂 #
404980次浏览 1446人参与
# Agent面试会问什么? #
45462次浏览 1557人参与
查看13道真题和解析