合理配置线程池

点云图的学习 一。点云地图拼接 1.1 配置运行环境 首先配置安装opencv3,安装完成后如下图: 然后配置点云图工具pcl,直接使用apt即可安装,安装后如下图: 最后使用点云工具观察点云图: 1.2 原理解析 总的来说由多角度拍摄图片拼接为点云3D图,是通过相机的内参,将像素坐标转化为相机坐标,再通过外参将相机坐标转化为世界坐标系,然后将每张图片的像素绘制填充于同一个世界坐标系下面,形成点云3D图。... 阅读详情

合理配置线程池

CPU密集

CPU密集的意思是该任务需要大量的运算,而没有阻塞,CPU一直全速运行。

CPU密集任务只有在真正的多核CPU上才可能得到加速(通过多线程),而在单核CPU上,无论你开几个模拟的多线程,该任务都不可能得到加速,因为CPU总的运算能力就那些。

IO密集

IO密集型,即该任务需要大量的IO,即大量的阻塞。在单线程上运行IO密集型的任务会导致浪费大量的CPU运算能力浪费在等待。所以在IO密集型任务中使用多线程可以大大的加速程序运行,即时在单核CPU上,这种加速主要就是利用了被浪费掉的阻塞时间。

 

接着上一篇探讨线程池留下的尾巴,如何合理的设置线程池大小。

要想合理的配置线程池的大小,首先得分析任务的特性,可以从以下几个角度分析:

1.  任务的性质:CPU密集型任务、IO密集型任务、混合型任务。

2.  任务的优先级:高、中、低。

3.  任务的执行时间:长、中、短。

4.  任务的依赖性:是否依赖其他系统资源,如数据库连接等。

性质不同的任务可以交给不同规模的线程池执行。

对于不同性质的任务来说,CPU密集型任务应配置尽可能小的线程,如配置CPU个数+1的线程数,IO密集型任务应配置尽可能多的线程,因为IO操作不占用CPU,不要让CPU闲下来,应加大线程数量,如配置两倍CPU个数+1,而对于混合型的任务,如果可以拆分,拆分成IO密集型和CPU密集型分别处理,前提是两者运行的时间是差不多的,如果处理时间相差很大,则没必要拆分了。

若任务对其他系统资源有依赖,如某个任务依赖数据库的连接返回的结果,这时候等待的时间越长,则CPU空闲的时间越长,那么线程数量应设置得越大,才能更好的利用CPU。

当然具体合理线程池值大小,需要结合系统实际情况,在大量的尝试下比较才能得出,以上只是前人总结的规律。

 

最佳线程数目 = ((线程等待时间+线程CPU时间)/线程CPU时间 )* CPU数目

比如平均每个线程CPU运行时间为0.5s,而线程等待时间(非CPU运行时间,比如IO)为1.5s,CPU核心数为8,那么根据上面这个公式估算得到:((0.5+1.5)/0.5)*8=32。这个公式进一步转化为:

最佳线程数目 = (线程等待时间与线程CPU时间之比 + 1)* CPU数目

可以得出一个结论: 
线程等待时间所占比例越高,需要越多线程。线程CPU时间所占比例越高,需要越少线程。 
以上公式与之前的CPU和IO密集型任务设置线程数基本吻合。

 

CPU密集型时,任务可以少配置线程数,大概和机器的cpu核数相当,这样可以使得每个线程都在执行任务

IO密集型时,大部分线程都阻塞,故需要多配置线程数,2*cpu核数

操作系统之名称解释:

某些进程花费了绝大多数时间在计算上,而其他则在等待I/O上花费了大多是时间,

前者称为计算密集型(CPU密集型)computer-bound,后者称为I/O密集型,I/O-bound。

 

安卓 实现灯光闪过效果 有个小需求,给按钮加一个灯光划过的效果,这样的需求一般有UI,肯定就找UI了要个gif图不就完事了,可是这次没有,好久自己做一个嘛。Web端的大佬实现很快,到安卓这边呢,百度一搜发现诶?怎么没有,好吧自己来一个 一切动效相关的不给图看都是耍流氓 所以俺不能这么干啊,OK!直接上效果图,再来解释下怎么实现的 效果就是这样子,怎么实现呢? 从图分析下,就是一个光写着重左边移动要右边循环嘛,这有啥难的?? 来看一看我的第一版,第二版 这是个什么?????一点都不像啊? 赶紧再问了问Web端大佬,噢,加了一个 阅读详情

相关推荐

MATLAB 论文复现——面向电量-调频-容量市场的数据中心园区算力及电力资源规划

如何在保证数据中心服务质量的前提下,考虑数据中心负荷转移特性,并对其进行合理规划,对降低数据中心规划总成本及提升新型电力系统灵活性均有显著意义。然后,根据不同电力市场的结算规则,研究了数据中心园区参与电量-调频-容量市场的方式和经济收益。在此基础上,以综合成本最小化为目标,优化数据中心园区发电机、储能的建设容量以及服务器的建设数量。最后,以阿里巴巴公开运行数据为例,证明考虑多元电力市场能够大大降低数据中心规划成本,激励数据中心园区投资建设更多灵活性资源,为电网提供有效的调频服务和容量支撑。

sjr1478的博客 667

Java多线程之线程池(合理分配资源)

一、故事讲解 1.故事 有一家月饼店开业了,店里面有3个核心员工,这些人负责月饼的制作,3人同时工作制作100个月饼,每个人做完自己的月饼就会忙着下一个月饼的制作。因为总不可能要100个员工来做这些月饼吧,那也太浪费了。这些月饼的制作顺序是按照先后排队等待被制作的。 中秋佳节来临了,这些月饼的单子一下子赶了起来。忙不过来那就只能请一些临时员工来帮忙,但是核心员工忙得过来就用不上临时员工了。同时根据这些核心员工和临时员工的工作能力来判断接单情况,超过工作情况就不接单了,等先忙完这些再说。忙完这些月饼的制做

快乐学习 2138

3.1 计算机视觉的发展和卷积神经网络概要(百度架构师手把手带你零基础实践深度学习原版笔记系列)

3.1 计算机视觉的发展和卷积神经网络(百度架构师手把手带你零基础实践深度学习原版笔记系列) 概要 计算机视觉作为一门让机器学会如何去“看”的科学学科,具体的说,就是让机器去识别摄像机拍摄的图片或视频中的物体,检测出物体所在的位置,并对目标物体进行跟踪,从而理解并描述出图片或视频里的场景和故事,以此来模拟人脑视觉系统。因此,计算机视觉也通常被叫做机器视觉,其目的是建立能够从图像或者视频中“感知”信息的人工系统。 计算机视觉技术经过几十年的发展,已经在交通(车牌识别、道路违章抓拍)、安防(人脸闸机.

aiAI 691

创建自定义线程池

创建自定义线程池

qq_52723553的博客 651

MS1030超声波流量计电路实战:如何用15ps精度优化水表设计(附配置代码)

本文深入探讨了如何利用MS1030超声波流量计芯片实现15ps高精度测量,以优化水表设计。文章从系统误差分配出发,详细解析了硬件电路设计要点、SPI通信配置及核心优化技巧,如利用可编程偏置电压和8回波累加功能来提升抗干扰能力与测量稳定性,并附有实用的配置代码示例。

svm4gardener的博客 334

增程式永磁电机发电系统电压环二自由度控制器设计

本论文主要研究增程式永磁电机发电系统的电压环二自由度控制器设计。该系统采用二自由度控制策略,通过精确调节电压环和电流环,显著提高系统的动态响应性能和稳态稳定性。基于SVPWM(空间矢量脉宽调制)技术,本研究设计的电压环控制器能够在负载突变和外部扰动的情况下,快速恢复并保持电压稳定,从而满足增程式永磁电机发电系统对电压精度和稳定性的高要求。仿真分析表明,所设计的控制器在不同工况下展现出良好的电压稳定性、较短的响应时间和较低的稳态误差,能够有效抑制电压波动并提高系统的鲁棒性。实验结果表明,控制器在维持高效能和高

weixin_44553616的博客 897

java多线程(线程池)

线程池 ​ 管理线程的资源池,可以复用线程,不用频繁的创建新线程,节省线程开销的资源损耗,节省资源,提高响应速度。主要概念:核心线程、阻塞队列、非核心线程、空闲时间、饱和策略。 ​ 线程池执行过程 Created with Raphaël 2.2.0提交任务核心线程池是否已满?阻塞队列(:任务队列)是否已满?线程池是否已满(是否可以创建非核心线程)?饱和策略创建非核心线程执行任务任务添加到阻塞队列创建核心线程执行任务yesnoyesnoyesno JUC线程管理 ThreadPoolExecutor 《阿

姜虹影的博客 1948

C++版Cesium实战:从OpenGL到3DTiles的全流程开发指南

本文提供了一份C++版Cesium全流程开发指南,详细阐述了如何利用OpenGL和Qt从零构建高性能、可离线部署的三维GIS应用。内容涵盖开发环境搭建、OpenGL渲染引擎初始化、Cesium核心坐标系与场景管理移植,并重点解析了3DTiles数据的解析、异步加载与渲染优化等硬核实战技术,旨在帮助开发者实现与现有C++工业软件的深度集成。

weixin_28077113的博客 164

Java线程池七大参数详解和配置

目录一、corePoolSize核心线程数二、maximunPoolSize最大线程数三、keepAliveTime空闲线程存活时间四、unit空闲线程存活时间的单位五、workQueue线程工作队列1、ArrayBlockingQueue FIFO有界阻塞队列2、LinkedBlockingQueue FIFO无限队列3、PriorityBlockingQueue VIP4、SynchronousQueue不缓存任务的阻塞队列六、threadFactory线程工厂七、handler超出线程数和工作队列时候

赵广陆 1万+

单片机毕业设计-基于STM32单片机的智能镜系统-仿真设计

可通过MQ-2监测当前烟雾浓度可通过温湿度传感器监测当前温湿度可通过光照强度传感器监测光照强度可通过蜂鸣器进行烟雾报警可通过语音识别模块进行反馈播报状态可通过按键设置阈值三个继电器控制灯、加湿、风扇标签:STM32单片机、OLED112864、DHT11、BH1750、继电器、SU-03T、MQ-2、蜂鸣器题目扩展:智能家居安防、智能大棚控制系统、智能环境检测系统项目编号:ZL-32-240604-FZ。

bsdog11的博客 967

C# NX二次开发:两种过滤器设置方案的实战解析与场景适配

本文深入解析C# NX二次开发中的两种过滤器设置方案:AddFilterHandler回调与MaskTriple属性设置。通过实战案例对比其性能差异与适用场景,帮助开发者根据需求选择最优方案,提升NX插件开发效率与交互体验。特别针对BlockStyler集成场景提供专业建议,是NX二次开发者的实用指南。

weixin_33739646的博客 844

java创建多个线程池

java创建多个线程池

weixin_45399695的博客 706

AutoSar标准官网下载

AutoSar文档下载和文档命名格式。。。

m0_56208280的博客 3522

如何合理配置线程池

合理的配置线程池的大小,首先得分析任务的特性,可以从以下几个角度分析: 任务的性质:CPU密集型任务、IO密集型任务、混合型任务。 任务的优先级:高、中、低。 任务的执行时间:长、中、短。 任务的依赖性:是否依赖其他系统资源,如数据库连接等。 性质不同的任务可以交给不同规模的线程池执行。 对于不同性质的任务来说,CPU密集型任务应配置尽可能小的线程,如配置CPU个数+1的线程数,IO密集...

geomon的博客 567

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

线程池合理配置

要想合理的配置线程池,就必须首先分析任务特性,可以从以下几个角度来进行分析: 任务的性质:CPU密集型任务,IO密集型任务和混合型任务。任务的优先级:高,中和低。任务的执行时间:长,中和短。任务的依赖性:是否依赖其他系统资源,如数据库连接。 任务性质不同的任务可以用不同规模的线程池分开处理。CPU密集型任务配置尽可能少的线程数量,如配置Ncpu+1个线程的线程池。IO密集型任务则由于需

yxpjx的专栏 1629

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Java多线程—JAVA线程池原理理解、合理配置线程池

Java多线程—JAVA线程池原理理解、合理配置线程池 一、线程池的实现原理 合理地使用线程池能够带来3个好处: 降低资源消耗。 提高响应速度。 提高线程的可管理性。 线程池的处理流程: 线程池判断核心线程池里的线程是否都在执行任务。如果不是,则创建一个新的工作线程来执行任务。如果核心线程池里的线程都在执行任务,则进入下个流程。 线程池判断工作队列是否已经满。如果工作队列没有满,则将...

CJ_66的博客 453

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

线程池应用之如何合理配置线程数

一、线程池如何配置合理线程数 (1)CPU密集型: 定义:CPU密集型的意思就是该任务需要大量运算,而没有阻塞,CPU一直全速运行。 CPU密集型任务只有在真正的多核CPU上才可能得到加速(通过多线程)。 CPU密集型任务配置尽可能少的线程数。 CPU密集型线程数配置公式:CPU核数+1个线程的线程池 (2)IO密集型: ...

lixinkuan的博客 8231

用了这么久线程池,你真的知道如何合理配置线程数吗?

点击关注公众号,利用碎片时间学习一、线程池如何配置合理线程数(1)CPU密集型:定义:CPU密集型的意思就是该任务需要大量运算,而没有阻塞,CPU一直全速运行。CPU密集型任务只有在真正的...

Java笔记虾 2251

线程池合理配置线程数

线程池合理配置线程数 大厂面试题: 1、请你谈谈对volatile的理解? 2、CAS你知道吗? 3、原子类AtomicInteger的ABA问题谈谈?原子更新引用知道吗? 4、我们都知道ArrayList是线程不安全的,请编码写一个不安全的案例并给出解决方案? 5、公平锁/非公平锁/可重入锁/递归锁/自旋锁谈谈你的理解?请手写一个自旋锁。 6、CountDownLatch、Cycl...

泷泷养的乔小胖 1774

合理配置Java线程池

合理的配置线程池 要想合理的配置线程池,就必须首先分析任务特性,可以从以下几个角度来进行分析: 1.任务的性质:CPU密集型任务,IO密集型任务和混合型任务。 2.任务的优先级:高,中和低。 3.任务的执行时间:长,中和短。 4.任务的依赖性:是否依赖其他系统资源,如数据库连接。 任务性质不同的任务可以用不同规模的线程池分开处...

maso88的专栏 542

自定义线程池和合理配置线程数

不要用Excutors定义线程池,用ThreadPoolExcutor自定义 public class ExcutorDemo { public static void main(String[] args) { //ExecutorService threadPool = Executors.newFixedThreadPool(20);//一池20个线程 ...

时光吹老了好男孩 578

如何合理配置线程池的大小

不羁朔风的博客 1180

合理配置线程池,corePoolSize的合理设置

如何配置线程池中的线程数(corePoolSize):分为两种: 依据:根据机器的硬件:**System.out.println(Runtime.getRuntime().availableProcessors());**查看自己机器的CPU核心数。 1.cpu密集型: CPU密集的意思是该任务需要大量的运算,而没有阻塞,CPU一直全速运行。 CPU密集任务只有在真正的多核CPU才可能得到加速(通...

qq_40823802的博客 1万+
上一篇: 自定义线程池
下一篇: 多线程的异步请求模式
Art&Code
博客等级 码龄7年 77粉丝 554原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值