• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

关闭

返回栏目

关闭

返回服务器栏目

10 - 基础 - CPU|核数|进程 processes|线程 threads

作者:

贺及楼

成为作者

更新日期:2023-12-04 14:37:28

硬件 - 多核多线程

一块CPU,有几核几线程
超线程技术 - 单内核同时执行多重线程
一时刻,内核只能对一条线程进行操作

操作系统 - 多进程与多线程

一个进程 = 一个运作的微信程序、网页、PS
一般一个进程在一个核上运作
一个核可以有运行多个进程,所以一核CPU也能操作电脑
CPU运行是多个线程切换,让人看起来一个核也能运作电脑
进程中的线程 - 浏览器(进程)视频、播放音频、播放字幕

3种解决方案

多进程模式:开启多个进程,每个进程开启一个线程,每个线程完成一件事,多个进程就完成多件事
多线程模式:开启一个进程,一个进程里开启多个线程,每个线程完成一件事,1个进程就完成多件事
多进程和多线程组合模式:开启多个进程,每个进程内开启多个线程,每个线程完成一件事,多个进程就完成多件事

多进程和多线程组合模式 - 弊端 - 切换太多 - 也慢

IO密集型 vs 计算密集型

IO密集型 - 常见的大部分任务都是IO密集型任务,比如web应用
计算密集型 - 需要进行大量的计算,消耗大量cpu资源
计算密集型 - 任务不能开启太多,否则任务切换时会占用太多cpu时间,降低cpu性能
计算密集型 - 这类任务的执行要达到cpu的最高效率,任务数不能大于cpu的核心数,这样不会将cpu时间浪费在切换任务上,而将所有时间用在计算上

mac查看cpu型号、核心数、线程数

终端输入,查看cpu具体型号:
sysctl machdep.cpu.brand_string

查看cpu核心数:
sysctl -n machdep.cpu.core_count

查看cpu线程数:
sysctl -n machdep.cpu.thread_count

Linux - Ubuntu看cpu

lscpu

Architecture: i686 #架构686
CPU(s): 2 #逻辑cpu颗数是2
Thread(s) per core: 1 #每个核心线程数是1
Core(s) per socket: 2 #每个cpu插槽核数/每颗物理cpu核数是2
CPU socket(s): 1 #cpu插槽数是1
Vendor ID: GenuineIntel #cpu厂商ID是GenuineIntel
CPU family: 6 #cpu系列是6
Model: 23 #型号23
Stepping: 10 #步进是10
CPU MHz: 800.000 #cpu主频是800MHz
Virtualization: VT-x #cpu支持的虚拟化技术VT-x(对此在下一博文中解释下http://hi.baidu.com/sdusoul/blog/item/5d8e0488def3a998a5c272c0.html)
L1d cache: 32K #一级缓存32K(google了下,这具体表示表示cpu的L1数据缓存为32k)
L1i cache: 32K #一级缓存32K(具体为L1指令缓存为32K)
L2 cache: 3072K #二级缓存3072K