认识Cpu、核和线程及其他相关概念

1、cpu、核和线程的关系

cpu个数: 是指物理上,也就是硬件上的核心数
核: 逻辑上的、模拟出来的核心数
线程数:同一时刻设备并行执行的程序个数,线程数=cpu个数 * 核数

2、单核cpu和多核cpu

单核也就是说一个物理上的cpu可以模拟出来的核心数是1个,多核自然就是多个,注意的是单核或者多核和cpu个数没有关系,存在多个cpu单核型,也存在一个cpu多核型。多核cpu减小了体积,同时也减小了耗能。

3、进程和线程

(1)进程是操作系统进行资源(包括cpu、内存、磁盘IO等)分配的最小单位(资源分配)
(2)线程是cpu调度和分配的基本单位(cpu调度)
(3)进程是拥有资源的基本单位,线程占有的资源很少,基本上就是程序计数器、栈和一些寄存器
为什么要有线程?
进程的切换需要重新分配资源,开销是很大的,线程切换相对来说比较简单;另外进程里面的任务可以按照时间片细分给线程,在核数超过1个的设备上,一次性可以执行多个线程,效率会显著提高

4、串行、并发、并行

(1)串行:多个任务,执行时一个执行完在执行另一个,类比:吃完饭再看球赛
(2)并发:多个线程在一个核心运行,同一时间其实只有一个线程运行,但是系统不停切换,看起来像是多个同时运行。线程的执行过程就是这样的,一个线程被按照时间片分为多个阶段执行,当时间片执行完时就会切换到另外一个线程。类比:一会吃饭,一会又跑去看球
(3)并行:不同核心执行的线程,线程在真正意义上同时运行。

5、适用场景

(1)计算机密集型
程序主要为复杂的逻辑判断和复杂的运算,cpu的利用率高,不建议开太多的线程,因为这样会导致频繁的线程切换,消耗资源、浪费时间
(2)IO密集型
程序主要为IO操作,因为IO操作会阻塞线程,cpu利用率不高,此时建议可以给多一点线程
总结:如果要提高性能,一是在硬件层面提高处理速度或者核心数;二是根据场景,合理设置现场数量

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值