当前位置:网站首页>线程池参数及合理设置
线程池参数及合理设置
2022-07-05 19:38:00 【androidstarjack】
点击上方关注 “终端研发部”
设为“星标”,和你一起掌握更多数据库知识一、线程池的7大核心参数
1. corePoolSize
核心线程数目核心线程会一直存活,及时没有任务需要执行,当线程数小于核心线程数时,即使有线程空闲,线程池也会优先创建新线程处理当设置allowCoreThreadTimeout=true(默认false)时,核心线程会超时关闭
2. maximumPoolSize 最大线程数目
当空闲线程时间达到 keepAliveTime,线程会关闭,直到数量等于corePoolSize
3. keepAliveTime空闲时间
4. unit 时间单位
超过核心线程的生存时间单位,如秒、毫秒等。
5. workQueue 阻塞队列
LinkedBlockingQueue:无界队列,容量Integer.MAX_VALUE,(FixedThreadPool 和 SingleThreadExecutor 线程池的线程数是固定的,用的就是LinkedBlockingQueue)
SynchronousQueue:直接提交的任务队列(CachedThreadPool 的最大线程数是 Integer.MAX_VALUE,用的是SynchronousQueue)
ArrayBlockingQueue:指定队列大小(corePoolSize >队列>maximumPoolSize )
6. threadFactory 线程工厂
可以定制线程对象的创建,例如设置线程名字、是否是守护线程等。
7. handler 拒绝策略
AbortPolicy:终止策略。超过最大承载、执行拒绝任务时,会直接抛出一个类型为RejectedExecutionException 的 RuntimeException异常
CallerRunsPolicy:调用者执行策略。超过承载,执行策略时,调用者线程执行任务。
DiscardOldestPolicy:丢弃最早任务策略。超过承载,丢弃队列中最早的任务。若线程池关闭,则舍弃。
DiscardPolicy:丢弃策略。超过承载,丢弃任务。
实现RejectedExecutionHandler接口,自定义策略
二、线程池参数的合理设置
Ø tasks,程序每秒需要处理的最大任务数量
Ø tasktime,单线程处理一个任务所需要的时间
Ø responsetime,系统允许任务最大的响应时间
corePoolSize
每个任务需要tasktime秒处理,则每个线程每秒可处理1/tasktime个任务。系统每秒有tasks个任务需要处理,则需要的线程数为:tasks/(1/tasktime)。即tasks*tasktime个线程数。具体数字最好根据8020原则,即80%情况下系统每秒任务数。
queueCapacity:任务队列的长度
任务队列的长度要根据核心线程数,以及系统对任务响应时间的要求有关。队列长度可以设置为(corePoolSize/tasktime)responsetime
maxPoolSize:最大线程数
当系统负载达到最大值时,核心线程数已无法按时处理完所有任务,这时就需要增加线程。每秒200个任务需要20个线程,那么当每秒达到1000个任务时,则需要(1000-queueCapacity)*(20/200)。
keepAliveTime
keepAliveTiime设定值可根据任务峰值持续时间来设定。
以上关于线程数量的计算并没有考虑CPU的情况。若结合CPU的情况,比如,当线程数量达到50时,CPU达到100%,则将maxPoolSize设置为60也不合适,此时若系统负载长时间维持在每秒1000个任务,则超出线程池处理能力,应设法降低每个任务的处理时间(tasktime)。
写在最后的话
大家看完有什么不懂的可以在下方留言讨论,也可以私信问我一般看到后我都会回复的。最后觉得文章对你有帮助的话记得点个赞哦,点点关注不迷路
@终端研发部
每天都有新鲜的干货分享!
回复 【idea激活】即可获得idea的激活方式
回复 【Java】获取java相关的视频教程和资料
回复 【SpringCloud】获取SpringCloud相关多的学习资料
回复 【python】获取全套0基础Python知识手册
回复 【2020】获取2020java相关面试题教程
回复 【加群】即可加入终端研发部相关的技术交流群
阅读更多
用 Spring 的 BeanUtils 前,建议你先了解这几个坑!
lazy-mock ,一个生成后端模拟数据的懒人工具
在华为鸿蒙 OS 上尝鲜,我的第一个“hello world”,起飞!
字节跳动一面:i++ 是线程安全的吗?
一条 SQL 引发的事故,同事直接被开除!!
太扎心!排查阿里云 ECS 的 CPU 居然达100%
一款vue编写的功能强大的swagger-ui,有点秀(附开源地址)
相信自己,没有做不到的,只有想不到的在这里获得的不仅仅是技术!
喜欢就给个“在看”边栏推荐
- 建议收藏,我的腾讯Android面试经历分享
- Add data to excel small and medium-sized cases through poi
- 常用运算符与运算符优先级
- Get wechat avatar and nickname with uniapp
- Force buckle 729 My schedule I
- Which securities company is better and which platform is safer for mobile account opening
- What is the function of okcc call center
- vagrant2.2.6支持virtualbox6.1版本
- webuploader文件上传 拖拽上传 进度监听 类型控制 上传结果监听控件
- [OBS] qstring's UTF-8 Chinese conversion to blog printing UTF-8 char*
猜你喜欢

【无标题】

软件测试工程师是做什么的?待遇前景怎么样?
Successful entry into Baidu, 35K monthly salary, 2022 Android development interview answer

使用easyexcel模板导出的两个坑(Map空数据列错乱和不支持嵌套对象)
![[hard core dry goods] which company is better in data analysis? Choose pandas or SQL](/img/70/a79c4a1724c11e208814de2d9cf553.png)
[hard core dry goods] which company is better in data analysis? Choose pandas or SQL

XaaS 陷阱:万物皆服务(可能)并不是IT真正需要的东西

Hiengine: comparable to the local cloud native memory database engine

How to choose the notion productivity tools? Comparison and evaluation of notion, flowus and WOLAI

【obs】QString的UTF-8中文转换到blog打印 UTF-8 char*

40000 word Wenshuo operator new & operator delete
随机推荐
Summer Challenge database Xueba notes, quick review of exams / interviews~
大厂面试必备技能,2022Android不死我不倒
What do software test engineers do? How about the prospect of treatment?
The relationship between temperature measurement and imaging accuracy of ifd-x micro infrared imager (module)
手机股票开户安全吗?靠不靠谱啊?
[untitled]
Debezium系列之:IDEA集成词法和语法分析ANTLR,查看debezium支持的ddl、dml等语句
中国银河证券开户安全吗 证券开户
Postman核心功能解析-参数化和测试报告
打新债在哪里操作开户是更安全可靠的呢
完爆面试官,一线互联网企业高级Android工程师面试题大全
Reptile exercises (II)
Inventory of the most complete low code / no code platforms in the whole network: Jiandao cloud, partner cloud, Mingdao cloud, Qingliu, xurong cloud, Jijian cloud, treelab, nailing · Yida, Tencent clo
Can Leica capture the high-end market offered by Huawei for Xiaomi 12s?
Float.floatToRawIntBits的返回值具体意思,将float转为byte数组
100million single men and women supported an IPO with a valuation of 13billion
What are general items
word如何转换成pdf?word转pdf简单的方法分享!
Notion 类生产力工具如何选择?Notion 、FlowUs 、Wolai 对比评测
Debezium系列之:解析默认值字符集