内核/逻辑处理器/线程/多线程/多CPU/多核CPU

1. 逻辑CPU

先查看电脑cpu信息,可以看到,是8个逻辑cpu
在这里插入图片描述

2. 线程数和逻辑CPU个数,内核个数

在任务管理器中,看到其实是4个内核,但是逻辑处理器是8个,有多少个逻辑处理器,就说明你的cpu可以同时处理几个线程

线程数=逻辑处理器个数
在这里插入图片描述

  • 一个物理CPU可以有1个或者多个物理内核
  • 一个物理内核可以作为1个或者2个逻辑CPU

操作系统可以使用逻辑CPU来模拟真实CPU。
在没有多核处理器的时候,一个物理CPU只能有一个物理内核,
有了多核技术,一个物理CPU可以有多个物理内核,可以把一个CPU当作多个CPU使用,即逻辑CPU。
没有开启超线程时,逻辑CPU的个数就是总的CPU物理内核数。
开启超线程后,逻辑CPU的个数就是总的CPU物理内核数的两倍。

实际能看到的2个物理CPU:
在这里插入图片描述
实现16个逻辑CPU的原理图:

在这里插入图片描述

参考:

3.线程/进程/多核CPU

3.1 线程

from multiprocessing import cpu_count
print(cpu_count())

> 8

在python中,使用上述代码可以获取当前系统的逻辑cpu个数,也就是支持并发的线程个数。


3.2 多核cpu

在这里插入图片描述

  • 左图:多个物理CPU,CPU通过总线进行通信,效率比较低。
  • 右图:多核CPU,不同的核通过L2 cache进行通信,存储和外设通过总线与CPU通信

感谢评论区同学的提醒,这里更新一下CPU三级cache的内容,以下内容摘录自:小林coding-图解系统
在这里插入图片描述

  • CPU 的高速缓存,通常可以分为 L1、L2、L3 这样的三层高速缓存,也称为一级缓存、二级缓存、三级缓存。
  • L1缓存是每个CPU核一个,每个 CPU 核心都有一块属于自己的 L1 高速缓存,指令和数据在 L1 是分开存放的,所以 L1 高速缓存通常分成指令缓存和数据缓存。
  • L2 高速缓存同样每个 CPU 核心都有
  • L3 高速缓存通常是多个 CPU 核心共用的

CPU多个核之间L1和L2 cache是独享的,L3 cache是共享的。


3.3 进程和线程

  • 进程是程序的一次执行过程,是一个动态概念,是程序在执行过程中分配和管理资源的基本单位,
  • 线程是CPU调度和分派的基本单位,它可与同属一个进程的其他的线程共享进程所拥有的全部资源。
  • 联系:线程是进程的一部分,一个线程只能属于一个进程,而一个进程可以有多个线程,但至少有一个线程;
  • 根本区别进程是操作系统资源分配的基本单位,而线程任务调度和执行的基本单位

所以对于程序员来说,其实更多时候是和线程打交道,一个程序是一整个进程,程序中可以有多个线程,用来并行进行不同的事情。

参考:

  • 34
    点赞
  • 124
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吨吨不打野

解决了问题,觉得还行就给点

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值