内核/逻辑处理器/线程/多线程/多CPU/多核CPU
文章目录
- 1. 逻辑CPU
- 2. 线程数和逻辑CPU个数,内核个数
- 3.线程/进程/多核CPU
1. 逻辑CPU
先查看电脑cpu信息,可以看到,是8个逻辑cpu
2. 线程数和逻辑CPU个数,内核个数
在任务管理器中,看到其实是4个内核,但是逻辑处理器是8个,有多少个逻辑处理器,就可以开多少个线程。
线程数=逻辑处理器个数
- 一个
物理CPU
可以有1个或者多个物理内核
, - 一个
物理内核
可以作为1个或者2个逻辑CPU
。
操作系统可以使用逻辑CPU来模拟真实CPU。
在没有多核处理器的时候,一个物理CPU只能有一个物理内核,
有了多核技术,一个物理CPU可以有多个物理内核,可以把一个CPU当作多个CPU使用,即逻辑CPU。
没有开启超线程时,逻辑CPU的个数就是总的CPU物理内核数。
开启超线程后,逻辑CPU的个数就是总的CPU物理内核数的两倍。
实际能看到的2个物理CPU:
实现16个逻辑CPU的原理图:
参考:
- 物理CPU,物理CPU内核,逻辑CPU概念详解
- 或者简书:https://www.jianshu.com/p/6a53819fa89b
3.线程/进程/多核CPU
from multiprocessing import cpu_count
print(cpu_count())> 8
在python中,使用上述代码可以获取当前系统的逻辑cpu个数,也就是支持并发的线程个数。
这里再区分一下进程,线程,多个CPU和单个多核CPU,多个多核CPU,这些概念区别。
- 左图:多个物理CPU,CPU通过总线进行通信,效率比较低。
- 右图:多核CPU,不同的核通过L2 cache进行通信,存储和外设通过总线与CPU通信
感谢评论区同学的提醒,这里更新一下CPU三级cache的内容
CPU多个核之间L1和L2 cache是独享的,L3 cache是共享的。
- 进程是程序的一次执行过程,是一个动态概念,是程序在执行过程中分配和管理资源的基本单位,
- 线程是CPU调度和分派的基本单位,它可与同属一个进程的其他的线程共享进程所拥有的全部资源。
- **联系:**线程是进程的一部分,一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程;
- 根本区别:
进程
是操作系统资源分配
的基本单位,而线程
是任务调度和执行
的基本单位
所以对于程序员来说,其实更多时候是和线程打交道,一个程序是一整个进程,程序中可以有多个线程,用来并行进行不同的事情。
参考:
- 进程,线程与多核,多cpu之间的关系
- cpu的核数和进程_CPU与核心及进程和线程认识
内核/逻辑处理器/线程/多线程/多CPU/多核CPU相关推荐
- java多核_java多线程中与多核cpu有什么关系?
操作系统提供多任务功能,进程和线程都是任务,进程有独立的内存空间.多任务被操作调度共享CPU,每个任务运行一个时间片,然后交出CPU,再由其他任务占用CPU.多任务又分为抢占式多任务和协作式多任务. ...
- 多CPU 多核CPU | 多进程 多线程 | 并行 并发
文章目录 区分 多CPU && 多核CPU CPU缓存 并行 && 并发 多CPU && 多核CPU | 多进程 && 多线程 | 并行 ...
- python多线程多个cpu_为什么python的多线程不能利用多核CPU?
为什么python的多线程不能利用多核CPU,但是咱们在写代码的时候,多线程的确是在并发,而且还比单线程快. 一.python的多线程不能利用多核CPU? 原因: 因为GIL,python只有一个GI ...
- python多线程不能利用多核cpu,但有时候多线程确实比单线程快。
python 为什么不能利用多核 CPU GIL 其实是因为在 python中有一个 GIL( Global Interpreter Lock),中文为:全局解释器锁. 1.最开始时候设计GIL是 ...
- 单核cpu多核cpu如何执行多线程
花了很多时间来整理这方面的相关内容,参考博客:多CPU,多核,多进程,多线程 程序和进程 程序: 为完成特定任务,用某种语言编写的一组指令集合,即一段静态的代码 进程: 是程序的一次执行过程,或是正在 ...
- 线程VS进程,多线程VS多进程,并行VS并发,单核cpuVS多核cpu
目录 概论 进程VS线程 并发VS并行 多线程VS多进程 总结 概论 程序是为完成特定任务.用某种语言编写的组指令的集合.即指一段静态的代码,静态对象. 进程是程序的次执行过程, 或是正在运行的 一个 ...
- linux内核如何支持多核cpu,现在的多核CPU,Linux操作系统是否能够实现单个进程(多线程)的多核调度(跨CPU核心调度)?...
现在的多核CPU,Linux操作系统是否能够实现单个进程(多线程)的多核调度(跨CPU核心调度)? 关注:106 答案:2 mip版 解决时间 2021-02-02 01:11 提问者你說.你愛我 ...
- 多核cpu与多线程理解
计算机cpu与多线程 进程和线程: 进程包含线程,一个进程中包含多个线程. 线程是cpu调度和分配的基本单位,进程是操作系统进行资源分配(cpu,内存,硬盘io等)的最小单位. 单核cpu: 实现多进 ...
- Linux下区分物理CPU、逻辑CPU和CPU核数
Linux下区分物理CPU.逻辑CPU和CPU核数 ㈠ 概念 ① 物理CPU 实际Server中插槽上的CPU个数物理cpu数量,可以数不重复的 physical id 有几个 ② 逻辑CPU Lin ...
最新文章
- Redis初学:11(Redis的配置文件)
- 李飞飞下半年或将从 Google离职?李飞飞回应
- 无人车巨头每天都在做相同的事情:不惜血本做高精地图是为何?
- std::ref std::cref
- 辨异 —— 冠词(定冠词、不定冠词、零冠词)
- Vagrant 手册之多个虚拟机 multi-machine
- volunteer research
- win10微软账户登录后以管理员都无法修改hosts文件解决办法
- mysql code name作为字段_MySQL索引管理及执行计划
- 229页,CMU博士张昊毕业论文~探索机器学习并行化的奥秘
- 【Flink】Flink 1.12.2 源码浅析 : TaskExecutor
- 想赚钱?先把底层逻辑搞清楚
- Python之 面向对象封装案例
- 二、JAVA基础、语法
- Asp.Net alert弹出提示信息的若干种方法
- 隔年增长的题_行测技巧:资料分析中隔年增长的解题关键
- 蓉叶云库——简单介绍seo技术
- MAK VR-Forces 3.7
- 北部湾及涠洲岛海域潮汐和海平面特征
- Java动态代理的原理
热门文章
- win10系统怎么合并电脑分区?
- 威纶通触摸屏如何隐藏系统设置箭头图标及通过参数进入系统设置?
- python 中怎么把类似这样的‘\xe5\xae\x9d\xe9\xb8\xa1\xe5\xb8\x82‘转换成汉字输出
- 算法设计例题分析 食物链
- 华三路由器链路聚合配置(华三交换机配置)
- android新emoji表情符号,安卓7.0全新emoji表情符号预览:更像人了
- php使用QQ登录API,QQ的账号登录及api操作
- PHP 操作图片水印
- vue的组件/data的参数/组件传值/插槽/侦听器/生命周期钩子函数
- 硕士毕业论文写多少字