关注
主要说过程和核心参数
大概就是 : 默认情况,线程数为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-14 17:09
西南交通大学 C++ 点赞 评论 收藏
分享
03-27 13:42
北京交通大学 算法工程师 点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 我的求职总结 #
478552次浏览 6772人参与
# 投格力的你,拿到offer了吗? #
187225次浏览 910人参与
# 27届实习投递记录 #
71994次浏览 803人参与
# 我是XXX,请攻击我最薄弱的地方 #
89136次浏览 614人参与
# 26届春招投递记录 #
10706次浏览 81人参与
# 这些公司卡简历很严格 #
107088次浏览 483人参与
# AI让海力士市值突破9000亿美元 #
8794次浏览 110人参与
# 牛油的搬砖plog #
205547次浏览 1327人参与
# 风评不好的公司,你会去吗? #
154974次浏览 705人参与
# 哪一瞬间让你觉得“这班不如不上” #
46610次浏览 278人参与
# 入职第四天,心情怎么样 #
56321次浏览 474人参与
# 中电科13所进度交流 #
6729次浏览 38人参与
# 产品面经 #
297237次浏览 2217人参与
# 我想象的工作vs实际工作 #
710113次浏览 5053人参与
# 什么专业适合考公 #
72194次浏览 435人参与
# 海信求职进展汇总 #
105668次浏览 424人参与
# 小厂实习有必要去吗 #
94102次浏览 447人参与
# 拼多多工作体验 #
61224次浏览 430人参与
# 总结:offer选择,我是怎么选的 #
296930次浏览 1591人参与
# 得物app工作体验 #
67267次浏览 119人参与
携程成长空间 146人发布
查看11道真题和解析