文章目录

  • 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相关推荐

  1. java多核_java多线程中与多核cpu有什么关系?

    操作系统提供多任务功能,进程和线程都是任务,进程有独立的内存空间.多任务被操作调度共享CPU,每个任务运行一个时间片,然后交出CPU,再由其他任务占用CPU.多任务又分为抢占式多任务和协作式多任务. ...

  2. 多CPU 多核CPU | 多进程 多线程 | 并行 并发

    文章目录 区分 多CPU && 多核CPU CPU缓存 并行 && 并发 多CPU && 多核CPU | 多进程 && 多线程 | 并行 ...

  3. python多线程多个cpu_为什么python的多线程不能利用多核CPU?

    为什么python的多线程不能利用多核CPU,但是咱们在写代码的时候,多线程的确是在并发,而且还比单线程快. 一.python的多线程不能利用多核CPU? 原因: 因为GIL,python只有一个GI ...

  4. python多线程不能利用多核cpu,但有时候多线程确实比单线程快。

    python 为什么不能利用多核 CPU  GIL 其实是因为在 python中有一个 GIL( Global Interpreter Lock),中文为:全局解释器锁.  1.最开始时候设计GIL是 ...

  5. 单核cpu多核cpu如何执行多线程

    花了很多时间来整理这方面的相关内容,参考博客:多CPU,多核,多进程,多线程 程序和进程 程序: 为完成特定任务,用某种语言编写的一组指令集合,即一段静态的代码 进程: 是程序的一次执行过程,或是正在 ...

  6. 线程VS进程,多线程VS多进程,并行VS并发,单核cpuVS多核cpu

    目录 概论 进程VS线程 并发VS并行 多线程VS多进程 总结 概论 程序是为完成特定任务.用某种语言编写的组指令的集合.即指一段静态的代码,静态对象. 进程是程序的次执行过程, 或是正在运行的 一个 ...

  7. linux内核如何支持多核cpu,现在的多核CPU,Linux操作系统是否能够实现单个进程(多线程)的多核调度(跨CPU核心调度)?...

    现在的多核CPU,Linux操作系统是否能够实现单个进程(多线程)的多核调度(跨CPU核心调度)? 关注:106  答案:2  mip版 解决时间 2021-02-02 01:11 提问者你說.你愛我 ...

  8. 多核cpu与多线程理解

    计算机cpu与多线程 进程和线程: 进程包含线程,一个进程中包含多个线程. 线程是cpu调度和分配的基本单位,进程是操作系统进行资源分配(cpu,内存,硬盘io等)的最小单位. 单核cpu: 实现多进 ...

  9. Linux下区分物理CPU、逻辑CPU和CPU核数

    Linux下区分物理CPU.逻辑CPU和CPU核数 ㈠ 概念 ① 物理CPU 实际Server中插槽上的CPU个数物理cpu数量,可以数不重复的 physical id 有几个 ② 逻辑CPU Lin ...

最新文章

  1. Redis初学:11(Redis的配置文件)
  2. 李飞飞下半年或将从 Google离职?李飞飞回应
  3. 无人车巨头每天都在做相同的事情:不惜血本做高精地图是为何?
  4. std::ref std::cref
  5. 辨异 —— 冠词(定冠词、不定冠词、零冠词)
  6. Vagrant 手册之多个虚拟机 multi-machine
  7. volunteer research
  8. win10微软账户登录后以管理员都无法修改hosts文件解决办法
  9. mysql code name作为字段_MySQL索引管理及执行计划
  10. 229页,CMU博士张昊毕业论文~探索机器学习并行化的奥秘
  11. 【Flink】Flink 1.12.2 源码浅析 : TaskExecutor
  12. 想赚钱?先把底层逻辑搞清楚
  13. Python之 面向对象封装案例
  14. 二、JAVA基础、语法
  15. Asp.Net alert弹出提示信息的若干种方法
  16. 隔年增长的题_行测技巧:资料分析中隔年增长的解题关键
  17. 蓉叶云库——简单介绍seo技术
  18. MAK VR-Forces 3.7
  19. 北部湾及涠洲岛海域潮汐和海平面特征
  20. Java动态代理的原理

热门文章

  1. win10系统怎么合并电脑分区?
  2. 威纶通触摸屏如何隐藏系统设置箭头图标及通过参数进入系统设置?
  3. python 中怎么把类似这样的‘\xe5\xae\x9d\xe9\xb8\xa1\xe5\xb8\x82‘转换成汉字输出
  4. 算法设计例题分析 食物链
  5. 华三路由器链路聚合配置(华三交换机配置)
  6. android新emoji表情符号,安卓7.0全新emoji表情符号预览:更像人了
  7. php使用QQ登录API,QQ的账号登录及api操作
  8. PHP 操作图片水印
  9. vue的组件/data的参数/组件传值/插槽/侦听器/生命周期钩子函数
  10. 硕士毕业论文写多少字