关注
主要说过程和核心参数
大概就是 : 默认情况,线程数为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
相关推荐
牛客热帖
更多
正在热议
更多
# AI面会问哪些问题? #
13083次浏览 271人参与
# 你做过最难的笔试是哪家公司 #
15992次浏览 109人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
8462次浏览 115人参与
# 你的实习产出是真实的还是包装的? #
13901次浏览 209人参与
# 找AI工作可以去哪些公司? #
3574次浏览 79人参与
# 春招至今,你的战绩如何? #
43480次浏览 382人参与
# 厦门银行科技岗值不值得投 #
4737次浏览 113人参与
# 从事AI岗需要掌握哪些技术栈? #
3753次浏览 110人参与
# 机械/制造每日一题 #
91886次浏览 1491人参与
# 阿里笔试 #
167520次浏览 1204人参与
# 春招你拿到offer了吗 #
822178次浏览 9946人参与
# 应届生进小公司有什么影响吗 #
132627次浏览 1188人参与
# 长得好看会提高面试通过率吗? #
17811次浏览 190人参与
# 学历对求职的影响 #
655940次浏览 4201人参与
# 应届生第一份工作最好去大厂吗? #
143218次浏览 1214人参与
# 沪漂/北漂你觉得哪个更苦? #
6746次浏览 119人参与
# 一张图晒出你司的标语 #
2310次浏览 35人参与
# HR最不可信的一句话是__ #
3799次浏览 75人参与
# AI时代,哪个岗位还有“活路” #
7525次浏览 205人参与
# 职场新人体验 #
180286次浏览 1215人参与
# 工作丧失热情的瞬间 #
374841次浏览 2574人参与
# 什么专业适合考公 #
58441次浏览 303人参与