The Number Of ThreadPoolExecutor
序言
整理下Java 线程池中线程数量如何设置的依据
巨人肩膀:
https://blog.csdn.net/weilaizhixing007/article/details/125955693
https://blog.csdn.net/yuyan_jia/article/details/120298564#:~:text=%E4%B8%80%E4%B8%AA%E7%BA%BF%E7%A8%8B%E6%B1%A0%E5%A4%84%E7%90%86%E8%AE%A1,N%3D16%E4%B8%AA%E7%BA%BF%E7%A8%8B%E3%80%82
Begin
![](https://img-blog.csdnimg.cn/img_convert/f5d050f7f84d44cf9e014300e10a2988.jpeg)
基于如上的描述可以了解到,设置线程池的数量需要根据业务操作类型进行分类,不同类型的线程池的线程数量设置规则是有差距的,侧面也说明不同业务的线程池应该分别创建,而不是一个线程池应用到所有类型的计算任务上cuiyaonan2000@163.com
所以线程池分类:
计算密集型
I/O密集经
计算&I/O混合型
计算密集型
CUP的最优数量是: 内核数+1
这种任务消耗的主要是 CPU 资源,可以将线程数设置为 N(CPU 核心数)+1,比 CPU 核心数多出来的一个线程是为了防止线程偶发的缺页中断,或者其它原因导致的任务暂停而带来的影响。一旦任务暂停,CPU 就会处于空闲状态,而在这种情况下多出来的一个线程就可以充分利用 CPU 的空闲时间。---多一个线程的目的是为了解决线程突然中断,CPU没有被充分利用
当线程数量太小,同一时间大量请求将被阻塞在线程队列中排队等待执行线程,此时 CPU 没有得到充分利用;当线程数量太大,被创建的执行线程同时在争取 CPU 资源,又会导致大量的上下文切换,从而增加线程的执行时间,影响了整体执行效率。
I/O密集型
CPU最优数量是:
![](https://img-blog.csdnimg.cn/img_convert/0ac8c2426cc2445e8ee47fd753dea1e2.png)
如上的算法是知道cpu利用率的情况下的算法,如下的算法是在不知道的情况下默认设置的一个算法
系统会用大部分的时间来处理 I/O 交互,而线程在处理 I/O 的时间段内不会占用 CPU 来处理,这时就可以将 CPU 交出给其它线程使用。因此在 I/O 密集型任务的应用中,我们可以多配置一些线程,具体的计算方法是 2N。
混合型
在一个任务既有I/O密集型又有计算密集型的计算任务时,且不能分开,则线程池的参数设置.
计算操作需要5ms,DB操作需要100ms,对于一台8个CPU的服务器,怎么设置线程数呢
最优线程数 = N(CPU 核数)*(1/(1+WT(线程等待时间)/ST(线程时间运行时间)))
如上 wt/st就是 5/105 表示,处理此类类型的业务单个线程的CPU利用率.
1 /(1+WT(线程等待时间)/ST(线程时间运行时间)) : 表示 1个内核如果要在105ms中全都运行起来则需要多个线程
N(CPU 核数)*(1/(1+WT(线程等待时间)/ST(线程时间运行时间))) 最后乘以N则标识充分利用N个内核的CUP时间需要的线程数
相关文章:
![](https://img-blog.csdnimg.cn/img_convert/0ac8c2426cc2445e8ee47fd753dea1e2.png)
The Number Of ThreadPoolExecutor
序言整理下Java 线程池中线程数量如何设置的依据巨人肩膀:https://blog.csdn.net/weilaizhixing007/article/details/125955693https://blog.csdn.net/yuyan_jia/article/details/120298564#:~:text%E4%B8%80%E4%B8%AA%E7%BA%BF%E7%A8%8B%E6%B1%A0%E5%A4%84%E7%90%86%E8%AE%A1,…...
![](https://img-blog.csdnimg.cn/925a95f5e8c94e2b9594659511f9026e.png)
Linux(Linux各目录结构详解)
我们知道Linux系统是一个文件系统,它的文件系统就类似windows系统下的磁盘文件系统。 我们连接上一台linux系统的服务器。 输入命令 : ls / 我们可以看到 linux系统的根目录下有这些目录 bin boot data dev etc hbr home lib lib64 lostfoun…...
![](https://img-blog.csdnimg.cn/56c7e8f8d56843aca77a929cc2bf4f6b.png)
UART通讯简介
UART全称Universal AsynchronousReceiver/Transmitter,通用异步收发传输器。 一、工作原理 和其它串口一样,数据按照二进制从低位到高位一位一位的传输,能将要传输的数据在串行通信与并行通信之间加以转换,能够灵活地与外部设备进…...
![](https://img-blog.csdnimg.cn/c5ef6a4765ff458da0aee1f8e0ac63ce.png)
80 90后表示真干不过,部门新来的00后已经把我卷奔溃了,不想干了····
都说00后躺平了,但是有一说一,该卷的还是卷。这不,刚开年我们公司来了个00后,工作没两年,跳槽到我们公司起薪18K,都快接近我了。 后来才知道人家是个卷王,从早干到晚就差搬张床到工位睡觉了。 …...
![](https://www.ngui.cc/images/no-images.jpg)
Python中2.x 与 3.x 版本区别?
Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。 为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下相容。 许多针对早期 Python 版本设计的程式都无法在 P…...
![](https://www.ngui.cc/images/no-images.jpg)
性能指南笔记一
全面的性能 1.好处和效率之间的权衡在增加程序特性的过程 2.数据库永远是瓶颈,分布式系统的整体性能问题 我们当前的性能处于什么百分位? 是不是整体的性能属于下降的? 一开始就考虑可能性很小的性能问题? 3.吞吐量测试 TPS 每秒…...
![](https://www.ngui.cc/images/no-images.jpg)
es数据导入导出
使用elasticdump导入导出数据 一、安装elasticdump 终端中输入 1 npm install elasticdump -g -g表示全局可用,直接在终端输入 elasticdump --version,出现版本信息即表示安装成功,如下 1 2 C:\Users\T470s>elasticdump --version 6.3.3 …...
![](https://www.ngui.cc/images/no-images.jpg)
Python3入门教程||Python3 字符串||Python3 列表
Python3 字符串字符串(string,简写为str)是 Python 中最常用的数据类型之一。我们可以使用引号( 或 " )来创建字符串。创建字符串很简单,只要为变量分配一个值即可。例如:var1 Hello World!var2 "W3Cscho…...
![](https://www.ngui.cc/images/no-images.jpg)
API 的安全性
大家好。今天聊一个很重要但是大部分人不重视的API安全问题。api固有的范围和风险意味着它们需要一种不同的安全方法。应用程序编程接口(api)是现代应用程序的构建模块,它们的使用正在以惊人的速度增长。然而,随着使用的增加,风险也会增加。。…...
![](https://www.ngui.cc/images/no-images.jpg)
Linux驱动->设备树
1.定义 设备树(device tree是描述硬件信息的一种树形结构,设备书文件在linux内核启动后被内核解析。描述一个硬件设备信息的节点我们叫做设备节点,一个设备节点内部包含当前硬件的多个不同属性,相同节点不同 2.设备树的文件格式…...
![](https://img-blog.csdnimg.cn/img_convert/924dcbeb76b8c9708bf720e951045604.png)
一天一道力扣题
232. 用栈实现队列请你仅使用两个栈实现先入先出队列。队列应当支持一般队列支持的所有操作(push、pop、peek、empty):实现 MyQueue 类:void push(int x) 将元素 x 推到队列的末尾int pop() 从队列的开头移除并返回元素int peek()…...
![](https://img-blog.csdnimg.cn/img_convert/22e3e4e3dd5bab543f8b0266725e1ec2.png)
算法leetcode|36. 有效的数独(rust重拳出击)
文章目录36. 有效的数独:样例 1:样例 2:提示:分析:题解:rustgoccpythonjava36. 有效的数独: 请你判断一个 9 x 9 的数独是否有效。只需要 根据以下规则 ,验证已经填入的数字是否有效…...
![](https://img-blog.csdnimg.cn/be50df18cf9f4df2b6f8b387c70e7fb5.png#pic_center)
都说爱有回音,这次情人节驱动人生宠你!
来了来了,它又来了——那个一波人狂欢,一波人孤单的节日。 眼看着身边人在订花订餐厅,选礼物,空气中弥漫着微妙的氛围,驱动哥脑海里只有明天下班的地铁挤不挤得过这群约会的人。 不过根据哥的观察,发现一个…...
![](https://www.ngui.cc/images/no-images.jpg)
npm安装依赖报错 npm code ERESOLVEnpm ERESOLVE unable to resolve dependency tree
在安装npm i vue-router (路由)时出现了这个错误。 npm ERR! code ERESOLVE npm ERR! ERESOLVE unable to resolve dependency tree npm ERR! npm ERR! While resolving: vue_test@0.1.0 npm ERR! Found: vue@2.6.14 npm ERR! node_modules/vue npm ERR! vue@"^2.6.…...
![](https://img-blog.csdnimg.cn/cf9d3fb5aac64714a5be218a7254cfcb.png)
【项目设计】—— 基于Boost库的搜索引擎
目录 前言 一、项目的相关背景 1. 什么是Boost库 2. 什么是搜索引擎 3. 为什么要做Boost搜索引擎 二、搜索引擎的宏观原理 三、搜索引擎技术栈和项目环境 四、正排索引 VS 倒排索引 —— 搜索引擎的具体原理 1. 正排索引(forword index) 2. 倒…...
![](https://img-blog.csdnimg.cn/f88baa7c68b14532888fd8424a54275a.png)
全网详解MyBatis-Plus updateById方法更新不了空字符串或null的解决方法
文章目录1. 文章引言2. 分析问题3. 解决问题3.1 方法1:全局配置方式3.2 方法2:非null字段验证策略3.3 方法3:通过注解的方式4. 总结1. 文章引言 在开发的过程中,我们经常使用MyBatis-Plus的updateById方法更新数据表,…...
![](https://img-blog.csdnimg.cn/img_convert/a4ab7d085b51bdda0c3d505e22f10614.png)
联想K14电脑开机全屏变成绿色无法使用怎么U盘重装系统?
联想K14电脑开机全屏变成绿色无法使用怎么U盘重装系统?最近有用户使用联想K14电脑的时候,开机后桌面就变成了绿色的背景显示,无法进行任何的操作。而且通过强制重启之后还是会出现这个问题,那么这个情况如何去进行系统重装呢&…...
![](https://img-blog.csdnimg.cn/19805bdf006140d5bdde0649e4738205.png#pic_center)
Spring Boot HTTP 400排查
背景 前段时间朋友咨询他们公司某个HTTP接口偶现400错误,有没有什么好的分析方法和解决方案,使用的是Spring Cloud体系。最近有时间总结下这个问题的处理过程。 为了分析问题,笔者使用 Spring Boot 3.0.2还原报错场景进行讲解。 问题分析 …...
![](https://www.ngui.cc/images/no-images.jpg)
【手撕源码】vue2.x中keep-alive源码解析
🐱 个人主页:不叫猫先生 🙋♂️ 作者简介:前端领域新星创作者、阿里云专家博主,专注于前端各领域技术,共同学习共同进步,一起加油呀! 💫系列专栏:vue3从入门…...
![](https://img-blog.csdnimg.cn/img_convert/94cb8d698bea4e858eb3ba3154ac306d.png)
ROS2机器人编程简述humble-第四章-BASIC DETECTOR .3
书中程序适用于turtlebot、husky等多种机器人,配置相似都可以用的。支持ROS2版本foxy、humble。基础检测效果如下:由于缺¥,所有设备都非常老旧,都是其他实验室淘汰或者拼凑出来的设备。机器人控制笔记本是2010年版本。…...
![](https://img-blog.csdnimg.cn/cb7e0f4e06064d1bbe9eb67664f97282.png)
【图像分类】基于PyTorch搭建LSTM实现MNIST手写数字体识别(双向LSTM,附完整代码和数据集)
写在前面: 首先感谢兄弟们的关注和订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 在https://blog.csdn.net/A…...
![](https://img-blog.csdnimg.cn/2a5ea7abac614bb2ad15a6c100d03ddc.png)
【Linux】多线程编程 - 同步/条件变量/信号量
目录 一.线程同步 1.什么是线程同步 2.为什么需要线程同步 3.如何实现线程同步 二.条件变量 1.常见接口以及使用 2.wiat/signal中的第二个参数mutex的意义 3.代码验证 三.POSIX信号量 1.概念 2.常见接口以及使用 四.条件变量vsPOSIX信号量 一.线程同步 1.什么是线…...
![](https://www.ngui.cc/images/no-images.jpg)
ES优化方案
ES优化&联合HBASE: 【Elasticsearch】优秀实践-ESHbase的实现_少加点香菜的博客-CSDN博客_sceshbase ES写入性能优化方案 ElasticSearch 调优笔记_index.refresh_interval_六月飞雪的博客-CSDN博客 es如何提升写入性能_婲落ヽ紅顏誶的博客-CSDN博客_es写入性…...
![](https://img-blog.csdnimg.cn/a3ceeb7f132f4e0dbaa9af596c374d7c.png)
从数据备份保护到完整生命周期管理平台,爱数全新发布 AnyBackup Family 8
编辑 | 宋慧 出品 | CSDN 云计算 从2003年创业,开始做数据备份技术,爱数已经走过了近20年的时间。现在,数据的价值被越来越多的业界与用户看到,数据分析应用赛道近年一直持续火热。而现在的爱数在做的,已经从数据的备…...
![](https://img-blog.csdnimg.cn/img_convert/c047b9c5e83d3a9f1c4b497205535daf.gif)
Go 微服务开发框架 DMicro 的设计思路
Go 微服务开发框架 DMicro 的设计思路 DMicro 源码地址: Gitee:dmicro: dmicro是一个高效、可扩展且简单易用的微服务框架。包含drpc,dserver等 背景 DMicro 诞生的背景,是因为我写了 10 来年的 PHP,想在公司内部推广 Go, 公司内部的组件及 rpc 协议都…...
![](https://www.ngui.cc/images/no-images.jpg)
浅谈功能测试
1.功能测试流程 1.1 功能测试流程 # 功能测试大致按照以下流程进行: (1).需求分析与评审(2).测试计划与测试方案(3).测试用例设计(4).测试用例评审(5).执行用例(6).缺陷跟踪及报告产出 1.2 功能测试流程详解 (1).需求分析与评审 功能测试应从需求出发, 功能测试就是尽量覆…...
![](https://img-blog.csdnimg.cn/img_convert/43bb300222808f4d538ae6abfc17a13e.png#pic_center)
UDP的详细解析
UDP的详细解析 文章目录UDP的详细解析UDP 概述UDP的首部格式检验和的计算抓包测试参考TCP/IP运输层的两个主要协议都是互联网的正式标准,即:用户数据报协议UDP (User Datagram Protocol)传输控制协议TCP (Transmission Control Protocol) 按照OSI的术语…...
![](https://img-blog.csdnimg.cn/img_convert/19bf774430d4f85d9a2a0f242ce449c6.png#pic_center)
史上最详细JUC教程之Synchronized与锁升级详解
在Java早期版本中,synchronized属于重量级锁,效率低下,因为监视器锁(monitor)是依赖于底层的操作系统的Mutex Lock来实现的,挂起线程和恢复线程都需要转入内核态去完成,阻塞或唤醒一个Java线程需…...
![](https://img-blog.csdnimg.cn/b2d67403577141938f0fe94958220e37.png)
Vue|初识Vue
Vue是一款用于构建用户界面的JavaScript框架。它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型,帮助开发者高效地开发用户界面。 初识Vue1. Vue简介2. 开发准备3. 模板语法3.1 差值语法3.2 指令语法4. 数据绑定4.1 单向数据…...
![](https://img-blog.csdnimg.cn/img_convert/3e4b582390924d9c841a00eed95859f1.jpeg)
在职阿里6年,一个29岁女软件测试工程师的心声
简单的先说一下,坐标杭州,14届本科毕业,算上年前在阿里巴巴的面试,一共有面试了有6家公司(因为不想请假,因此只是每个晚上去其他公司面试,所以面试的公司比较少)其中成功的有4家&…...
![](/images/no-images.jpg)
百度商桥怎样绑定网站/口碑营销策略
全国计算机技术与软件专业技术资格(水平)考试 2016年上半年 信息系统项目管理师 下午试卷 II (考试时间 15:20~17:20 共 120 分钟) 1. 本试卷满分 75 分。 2. 在答题纸的指定位置填写你所在的省、自治区、直辖市、计划单列市的名称。 3. 在答题纸的指定位置填写准考证…...
![](https://static.leiphone.com/uploads/new/article/740_740/201803/5aa721fcd910d.png?imageMogr2/format/jpg/quality/90)
成都公司网页制作/seo高级优化技巧
https://www.leiphone.com/news/201803/Tw0nrq6vGDIvbmXr.html 雷锋网(公众号:雷锋网)获悉,3月13日,东芝发布新AR眼镜dynaEdge AR,其由一个单臂眼镜和一个分离的计算单元组成。眼镜售价1899美元,面向企业级用户。 当所…...
![](/images/no-images.jpg)
要找做冲压件的厂去哪个网站找/广告词
正式进入主题,perl之所以受欢迎,主要有赖于两大利器: 强大的正则表达式支持 & 强大的复杂数据结构。 复杂数据结构有赖于引用这个重要的实现方式,接下来的几篇笔记将重点讨论列表(也叫数组)引用、哈希引用和函数(也叫子程序)引…...
![](https://img-blog.csdnimg.cn/img_convert/1d5179fd3c4dc5b1e7f281215fa5d82f.png)
国外域名注册哪个网站好/重庆排名优化整站优化
展开全部您好,如果您经常被骚扰电话困32313133353236313431303231363533e4b893e5b19e31333335313166扰,可以尝试安装腾讯手机管家进行骚扰电话拦截与举报喔。管家除了可以拦截骚扰电话外,还可以拦截垃圾短信,将讨厌的号码设为黑名…...
做网站那个公司/免费seo网站推荐一下
日期内核版本架构作者GitHubCSDN2016-05-29Linux-4.5X86 & armgatiemeLinuxDeviceDriversLinux进程管理与调度-之-进程的创建 前言 Linux下有3个特殊的进程,idle进程(PID0), init进程(PID1)和kthreadd(PID2) * idle进程由系统自动创建, 运行在内核态 idle进…...
![](/images/no-images.jpg)
做外语网站的公司/郑州seo推广
一、无卡支付 交易时需录入四要素完成支付,四要素包括:卡号、户名、身份证号、手机号,如果是信用卡还需要录入有效期和CVN,无卡支付平台一般的银行渠道还需要签约三方支付协议,具体取决于对接的银行或支付通道。 二、…...