你真的懂多线程吗?多线程 并行处理 CPU 操作系统

news/2024/11/17 13:18:43/文章来源:https://www.cnblogs.com/yyd-sun/p/18293471

了解多线程、并行处理首先需要了解什么CPU、CPU核数、操作系统

CPU物理数

即电脑拥有的物理CPU数量,普通电脑一般只有一个CPU插槽,也就是只有一个物理CPU。我们日常说的CPU,就是指封装好的一个物理CPU,作为商品进行售卖。但在编程讨论时,某些情况下,我们说的CPU含义又是指其中一个运算单元,即下面的说的CORE核心。平时讲的四核CPU、六核CPU指的就是CPU的运算单元数,CPU同时运行的线程数。

CORE核心数(物理核心数)

核心数为一个物理CPU拥有的运算单元数量,例如8核,即一个CPU有8个核心,拥有8个独立的运算单元。一个运算单元有一套寄存器,一般还有L1,L2的私有缓存,可以独立执行一个任务(一般是线程),所以一个核心同一时刻只能运行一个线程,不论这个线程是哪个进程的。每隔一定时间,大概几十毫秒,就会切换线程,即切换任务(可能是同一个进程的线程,也可能是另外一个进程的线程,如果是其它进程的线程,会切换CR3)。

为什么要切换CR3?

首先了解什么是CR3。每个进程都会有自己的一张分级的页表,用于查找该进程所访问到的物理内存(因为进程都是独立的,物理内存肯定是限制访问)。

当操作系统执行进程切换的时候,会将执行该进程页表的那个指针加载到CR3寄存器,这样当进程切换后,CPU访问的内存就是属于该进程的内存或者内核所使用的内存。进程对应的页表指针是由内核进行维护的。

当核心被切换到别的线程,并且这个线程属于别的进程,CR3必须更新为该线程所属的进程页表的那个指针,所以会切换CR3。我只简单理解为CR3用来标记线程所属的进程。

下面我们再说CPU的时候,直接用CORE核心来代替CPU的说法可能更明确

增加内存条以提高运行速度

增加内存条可以提高电脑运行速度,但这取决于当前内存是否足够以及电脑其他硬件的性能

如果内存容量已经满足需求,再增加内存对速度的提升将非常有限。反之,如果内存容量不足,增加内存条可以显著提升电脑运行速度。内存条的主要作用是为程序运行提供临时存储空间,内存条容量越大,能同时运行的程序就越多,电脑的处理速度也就越快。

然而,电脑的整体性能不仅取决于内存,还与CPU、显卡等硬件的性能密切相关。如果CPU或显卡性能不足,即使增加再多的内存也无法显著提升电脑速度。

此外,如果是内存低造成的电脑运行慢,增加内存条可以提速。但如果原有内存已经足够,或者电脑运行慢的原因并非内存不足,那么增加内存条可能无法显著提升电脑速度。

因此,在考虑是否增加内存条时,需要综合考虑电脑的整体配置和性能需求。

CPU核心数和线程数

目前主流CPU有双核、三核、四核、六核、八核、十六核等。

每个核心可以处理一定数量的线程数,增加核心数目就是为了增加线程数,因为操作系统是通过线程来执行任务的。

一个CPU的性能不仅取决于核心数量,还取决于每个核心能够处理的线程数量以及这些线程如何被调度和执行。

每个核心能够处理的线程数量

每个核心能够处理的线程数量取决于处理器的架构和是否采用了超线程技术。‌

在传统的处理器设计中,‌每个核心只能执行一个线程。‌然而,‌随着超线程技术的引入,‌一个核心现在可以同时处理多个线程。‌超线程技术允许处理器核心在单个物理核心上模拟出多个逻辑线程,‌从而提高了处理器的整体性能。‌具体来说,‌一个核心通过超线程技术可以同时处理2个线程,‌这使得处理器能够在不增加物理核心数量的情况下,‌提升性能高达40%。‌

例如,‌如果一个处理器具有两个核心,‌并且采用了超线程技术,‌那么这两个核心就可以模拟出4个逻辑线程进行并行处理。‌这种情况下,‌处理器实际上拥有4个线程的处理能力,‌尽管物理核心数只有两个2。‌

总的来说,‌现代处理器通过超线程技术,‌能够在单个物理核心上支持多个逻辑线程的执行,‌从而提高了处理器的并行处理能力和整体性能。‌

 本文参考:简单理解:CPU物理数,核心数,线程数,进程,线程,协程,并发,并行的概念

 本文参考:I/O会一直占用CPU吗?

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

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

相关文章

易优cms网站后台登录不上

请仔细检查以下问题: 1、磁盘空间大小是否100%; 2、站点目录权限是否为755; 3、站点所有目录的权限,禁止用root:root; 4、如还没解决,请联系技术支持本文来自博客园,作者:黄文Rex,转载请注明原文链接:https://www.cnblogs.com/hwrex/p/18294466

THM-Skynet-Writeup

通过学习相关知识点:攻破Linux目标机器并完成提权操作。部署并渗透目标机器 step1 使用Nmap扫描端口 nmap -p- -sC -sV -T4 -v 10.10.164.81139/445端口开放,可知目标机开启了SMB服务枚举SMB共享 smbclient -L \\10.10.164.81获取到一些可能能访问的SMB服务账号:anonymous、…

CAD可以转成PDF吗?有哪些转换的方法?

在CAD制图过程中,我们可能会遇到这样的问题:完成CAD制图后,为了方便阅览,经常会直接输出成PDF格式,输出完成后,打开一看,发现和原来的图纸差距很大,输出PDF文字显示不全,遇到这种情况该如何处理呢?给大家分享2个CAD转PDF的好用的转换方法。 方法一:使用转换工具 ilo…

易优cms安装数据库提示写入表ey_archives记录失败,请刷新重试

清空数据库,重新试试!不行清空后可以切换下其它版本的数据库。 实在因为空间环境问题,可以直接导入数据库方法安装,然后改下网站配置文件就可以了。补充:有一种特殊情况是防火墙拦截了, 还有一种可能是空间满了, 需要挨个排查一下。本文来自博客园,作者:黄文Rex,转载…

易优cms网站友情链接,设置新窗口打开无效

<a href="{$field.url}" {$field.target} target="_blank" title="{$field.title}">{$field.title}</a>在模板里面 友情链接里面得A标签里面添加{$field.target} 标签 即可 {eyou:flink type=text row=100 titlelen=20} <a href=…

jpg格式图片如何转换成pdf文件?

图片可以转换成PD吗?你们都是怎么转换的?用了什么转换器呢?要将jpg格式转换成PDF,说难不难,说简单也不简单,没有转换不了的格式,只有不好用的转换器罢了。下面来给大家介绍几个能将jpg转换成pdf的简单方法,能快速帮你实现转换哦! 方法一:在线工具进行转换 ilovepdf中…

全英文计算机科学速成班概况

早期计算 为我们展示了 早期计算机计算发展史 1)机械计算时期:算盘(起源于中国 or 美索不达米亚) 航海仪,星象表, 时钟....使得计算更加简便。 往往是需求产生计算动力要求。这么来看其实算盘的计算能力挺强的,中国古代貌似一直在使用算盘。 2)近代-电子和机械计算: co…

windows系统远程桌面访问设置教程

windows10设置远程桌面连接 - 知乎 (zhihu.com) 1分钟远程访问内网远程桌面-贝锐官网 (oray.com) A电脑操作: 1,设置远程桌面计算机账户及密码 我的电脑右键-管理-计算机管理-本地用户和组-用户-选择用户-右键-设置密码(如果计算机管理没有本地用户和组,打开控制面板-用户账…

zookeeper下载安装启动

1、下载zookeeper安装包 下载地址:https://zookeeper.apache.org/releases.html 选择一个版本下载即可,如下图: 2、解压压缩包 在根目录下新建data和log文件夹,如下图:3、修改配置 进入conf目录,将zoo_sample.cfg文件,复制一份,重命名为zoo.cfg修改zoo.cfg配置文件,将…

基础篇

一、Linux的规则 1. 计算机概论 24.7.5 1.1 运作流程1.2 计算单位进位制 Kilo Mega Giga Tera Peta Exa Zetta二进制 1024 1024K 1024M 1024G 1024T 1024P 1024E十进制 1000 1000K 1000M 1000G 1000T 1000P 1000EDDR SDRAM:DDR是所谓的双倍数据传输速度,可以在一次周期中进行两…

【转载】如何完整删除Windows.old(详细教程)

原文链接:https://blog.csdn.net/bluewn/article/details/104325594 当你升级或重新安装Windows时,你的旧文件可能会被放在C:驱动器上的一个文件夹中,这个文件夹的标签是Windows.old。 这对于检索旧文件非常有用,但它会占用计算机上的一大块空间。你不能像删除大多数文件夹…

Linux中的DNS服务

DNS服务解析域名 域名---->IP正向解析:域名---->IP 反向解析:IP---->域名域名:haha.com 站点名:mail.haha.com【1】、DNS的分布式结构【2】、安装DNS软件包bind bind-chroot 在服务器端安装主程序:bind服务名:named 主要执行程序:/usr/sbin/named DNS协议默认端…