关注
主要说过程和核心参数
大概就是 : 默认情况,线程数为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
相关推荐
11-23 03:19
University of Miami Java 点赞 评论 收藏
分享
牛客热帖
正在热议
# 25届秋招总结 #
325451次浏览 3041人参与
# 上班苦还是上学苦呢? #
71023次浏览 630人参与
# 百度开奖 #
181819次浏览 1137人参与
# 地方国企笔面经互助 #
4450次浏览 12人参与
# 如果有时光机,你最想去到哪个年纪? #
21152次浏览 389人参与
# 选完offer后,你后悔学本专业吗 #
21725次浏览 158人参与
# 阿里云管培生offer #
36690次浏览 422人参与
# 我的实习求职记录 #
6068877次浏览 83536人参与
# 如何一边实习一边秋招 #
996354次浏览 12662人参与
# 找工作时遇到的神仙HR #
552897次浏览 3800人参与
# 入职第一天,你准备什么时候下班 #
21542次浏览 144人参与
# 招聘要求与实际实习内容不符怎么办 #
10715次浏览 277人参与
# bilibili求职进展汇总 #
33055次浏览 354人参与
# 许愿池 #
214657次浏览 2534人参与
# 学历or实习经历,哪个更重要 #
53728次浏览 422人参与
# 实习工作,你找得还顺利吗? #
247650次浏览 2905人参与
# 海康威视求职进展汇总 #
400589次浏览 3408人参与
# 通信硬件薪资爆料 #
608371次浏览 5162人参与
# 携程求职进展汇总 #
135547次浏览 930人参与
# 正在实习的你,几点下班 #
53073次浏览 395人参与
# 工作两年想退休了 #
53045次浏览 672人参与
# 如果再来一次,你还会学硬件吗 #
95143次浏览 1171人参与