CPU密集型和IO密集型对 CPU内核之间的关系

多线程如何合理的配置核心线程数?

对于 CPU 密集型任务,由于 CPU 密集型任务的性质,导致 CPU 的使用率很高,如果使用线程池中的核心线程数量过多,会增加上下文切换的次数,带来额外的开销。因此,考虑到 CPU 密集型任务因为某些原因而暂停,这个时候有额外的线程能确保 CPU 这个时候不会浪费,还可以增加一个 CPU 上下文切换。

一般情况下:线程池的核心线程数量等于 CPU 核心数 + 1。例如需要大量的计算,视频渲染,仿真等等。这个时候 CPU 就卯足了劲运行,这个时候切换线程,反而浪费了切换的时间,效率不高。打个比方,你的大脑是 CPU,你本来就在一本心思地写作业,多线程这时候就是要你写回作业,然后敲会代码,然后在看个视频,然后在切换回作业。

对于 I/O 密集型任务,由于I/O 密集型任务 CPU 使用率并不是很高,可以让 CPU 在等待 I/O 操作的时候去处理别的任务,充分利用 CPU。

一般情况下:线程的核心线程数量等于 2*CPU 核心数。例如你需要陪小姐姐聊天,还需要下载一个 IDEA,还需要看博客。打个比方,小姐姐给你发消息了,回一下她,然后呢?她给你回消息肯定需要时间,这个时候你就可以下载 IDEA,下载完一看,她还没有回消息,然后看会博客。小姐姐终于回你了,你回一下,然后接着看博客,这就是类似于 I/O 密集型。你可以在不同的“不烧脑” 的工作之间切换,来达到更高的效率。而不是小姐姐不回你,你就干等着,说不定,小姐姐根本不会回复你。

对于混合型任务,由于包含 2 种类型的任务,故混合型任务的线程数和线程时间有关。在某种特定的情况下还可以将任务分为 I/O 密集型任务和 CPU 密集型任务,分别让不同的线程池去处理。

一般情况下:线程池的核心线程数 = (线程等待时间/线程 CPU 时间 + 1) CPU 核心数*。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/204912.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python 日志(略讲)

日志操作 日志输出: # 输出日志信息 logging.debug("调试级别日志") logging.info("信息级别日志") logging.warning("警告级别日志") logging.error("错误级别日志") logging.critical("严重级别日志")级别设置…

Java程序员,你掌握了多线程吗?(文末送书)

目录 01、多线程对于Java的意义02、为什么Java工程师必须掌握多线程03、Java多线程使用方式04、如何学好Java多线程送书规则 摘要:互联网的每一个角落,无论是大型电商平台的秒杀活动,社交平台的实时消息推送,还是在线视频平台的流…

unity 2d 入门 飞翔小鸟 下坠功能且碰到地面要停止 刚体 胶囊碰撞器 (四)

1、实现对象要受重力 在对应的图层添加刚体 改成持续 2、设置胶囊碰撞器并设置水平方向 3、地面添加盒状碰撞器 运行则能看到小鸟下坠并落到地面上

Windows本地如何添加域名映射?(修改hosts文件)

1. DNS(域名系统) Domain Name System(域名系统):为了加快定位IP地址的速度, 将域名映射进行层层缓存的系统. 目的:互联网通过IP(10.223.146.45)定位浏览器建立连接,但是我们不易区别IP,为了方便用户辨识I…

柏睿网络分析:为什么微模块化机房越来越受欢迎?

与传统机房相比,微模块化机房的建设周期更短,扩展性更强,能耗更低,运维难度也相对较低。因此,微模块化机房是一种高效、灵活、节能的机房解决方案,适用于各种规模的数据中心。 一体化分布式部署&#xff1a…

idea利用SpringMVC框架整合ThymeLeaf

简洁一些:两个重要文件 1.controller指定html文件:我们访问http://localhost:8080/test package com.example.appledemo.controller;import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import o…

甘草书店:#9 2023年11月23日 星期四 「麦田创业历程分享1——联合创始人的魔幻相遇」

既然甘草是一家创业主题的书店咖啡馆,那就从我,从麦田开始分享一下创业历程吧。 需要声明的是,我从不认为我有资格对别人的创业指指点点,每位创业者的性格、背景、基础、诉求各有不同,时代发展也日新月异,…

netty07-粘包半包以及解决方案

粘包指的是发送方在发送数据时,多个数据包被合并成一个大的数据包发送到接收方,接收方在接收时无法准确地区分各个数据包的边界,从而导致数据粘在一起。 半包指的是发送方发送的数据包被拆分成了多个小的数据包,在接收方接收时&a…

springboot中优雅实现异常拦截和返回统一结构数据

做前后端分离的项目,为了方便前端处理数据,都会将返回的数据封装到统一的结构下,这样前端拿到数据可以根据指定的字段做不同的业务逻辑处理。 1、异常信息统一拦截 项目开发中,难免会发生异常,如果不做拦截&#xff…

Vue的Nuxt项目部署在服务器,pm2动态部署和npm run build静态部署

Nuxt项目的部署有两种方式,一种是静态部署,一种是动态部署 静态部署需要关闭项目的ssr功能,动态部署则不需关闭,所以怎么部署项目就看你用不用ssr功能了 。 1.静态部署 先说静态部署,很简单,只需要在nuxt…

【C语言】程序设计加密解密

🚩write in front🚩 🔎 介绍:"謓泽"正在路上朝着"攻城狮"方向"前进四" 🔎🏅 荣誉:2021|2022年度博客之星物联网与嵌入式开发TOP5|TOP4、2021|2222年获评百大博…

对目前想法有帮助的论文

《Enabling DeepSpikingNeuralNetworks with Hybrid conversion and SpikeTimingDependent Backpropagation》 - 知乎

黛姿秘语,匠心之作,严谨工艺铸就完美肌肤

在喧嚣的都市中,我们每个人都渴望找到一款可以信赖长期使用的护肤品,让匹配的肌肤重新焕发光彩,找到更加年轻的自己,但是目前市面上的产品让人眼花缭乱,作为普通的消费者,无法去辨别什么产品好,…

idea连接Hbase卡住,没有输出

1.项目场景 (idea连接hbase) 先检查hadoop,zookeeper,hbase启动没有 idea连接hbase,创建命名空间,idea一直卡住在日志,没有输出 package com.wf.hbase;import org.apache.hadoop.hbase.NamespaceDescriptor; import org.apache.…

npm 更换镜像

有时候npm install 安装时太慢了,可以试试设置淘宝镜像 1、更换镜像 npm config set registry https://registry.npm.taobao.org 2、查看镜像 npm config get registry 如果返回 https://registry.npm.taobao.org/,说明配置的是淘宝镜像。 3、还原镜像…

北京市经信局局长姜广智带队调研三六零 强调大模型应与行业结合

12月6日,北京市经济和信息化局局长姜广智、副局长王磊带队走访调研三六零集团,就共促城市级数字安全基础设施项目落地,打造引领行业发展标杆项目,推动大模型落地应用赋能产业、行业发展等话题进行交流。360集团创始人周鸿祎接待来…

形态学操作—凸壳

图像形态学是图像处理领域的重要概念,而凸壳(Convex Hull)是其中的一个常用操作。它可以用数学的角度解释为一个闭合区域,该区域包围了给定点集的最小凸多边形。 凸壳的原理: 凸壳是一个凸多边形,它包围了…

要求CHATGPT高质量回答的艺术:提示工程技术的完整指南—第 24 章:文本分类提示

要求CHATGPT高质量回答的艺术:提示工程技术的完整指南—第 24 章:文本分类提示 文本分类是一种允许模型将文本归入不同类别的技术。这种技术对于自然语言处理、文本分析和情感分析等任务非常有用。 值得注意的是,文本分类不同于情感分析。情…

(十五)Flask覆写wsgi_app函数实现自定义中间件

中间件 一、剖析: 在前面讲session部分提到过:请求一进来,Flask会自动调用应用程序对象【Flask(__name__)】的__call__方法,这个方法负责处理请求并返回响应(其实如下图:其内部就是wsgi_app方法&#xff…

UniRepLKNet:用于音频、视频、点云、时间序列和图像识别的通用感知大内核ConvNet

摘要 https://arxiv.org/abs/2311.15599 大核卷积神经网络(ConvNets)最近受到了广泛的研究关注,但存在两个未解决的关键问题需要进一步研究。(1)现有大核ConvNets的架构在很大程度上遵循传统ConvNets或Transformers的设计原则,而大核ConvNets的架构设计仍未得到充分解决。(2…