十五、多线程基础知识(一):基本概念简介

一、多线程业务模型

在这里插入图片描述

二、使用多线程就能提升性能吗

硬件 -> CPU核数=1,核心数=1 -> 使用多线程并不能完全提升性能
硬件 -> 多核心CPU -> 大部分情况使用多线程能提升性能

  • 多线程尽量用于可以被拆分的任务
    例如:对于用户登录与数据收发这2种任务来说
    将多线程用于数据收发的业务会更好

三、使用多线程的目的

1、提高硬件性能的利用率
2、后台计算:加载文件、耗时运算、播放特效
3、并行计算:音频、视频、图片、AI
4、其他需要最大化利用硬件处理能力的任务

四、多线程操作中的共享数据

  • 多线程间共享数据的解决方案
    1、保护
    2、锁定
    3、临界区
    4、原子操作

五、CPU核心数

1、关于CPU核心的一些概念

  • CPU核心数:即CPU芯片个数
  • CPU逻辑核数:当有超线程时,比如2,逻辑核数=核心数*2
    CPU的核心数是指物理上,也就是硬件上存在着几个核心。比如,双核就是包括2个相对独立的CPU核心单元组,四核就包含4个相对独立的CPU核心单元组。
  • 线程数:Hyper-Threading,超线程,是一种逻辑的概念,简单地说,就是模拟出的CPU核心数。比如,可以通过一个CPU核心数模拟出2线程的CPU,也就是说,这个单核心的CPU被模拟成了一个类似双核心CPU的功能。我们从任务管理器的性能标签页中看到的是两个CPU。 比如Inte l赛扬G460是单核心,双线程的CPU,Intel 酷睿i3 3220是双核心 四线程,Intel 酷睿i7 4770K是四核心 八线程 ,Intel 酷睿i5 4570是四核心 四线程等等。 对于一个CPU,线程数总是大于或等于核心数的。一个核心最少对应一个线程,但通过超线程技术,一个核心可以对应两个线程,也就是说它可以同时运行两个线程。
    CPU的线程数概念仅仅只针对Intel的CPU才有用,因为它是通过Intel超线程技术来实现的,最早应用在Pentium4上。如果没有超线程技术,一个CPU核心对应一个线程。所以,对于AMD的CPU来说,只有核心数的概念,没有线程数的概念。
    CPU之所以要增加线程数,是源于多任务处理的需要。线程数越多,越有利于同时运行多个程序,因为线程数等同于在某个瞬间CPU能同时并行处理的任务数。 因此,线程数是一种逻辑的概念,简单地说,就是模拟出的 CPU 核心数。一个核心最少对应一个线程,但英特尔有个超线程技术可以把一个物理线程模拟出两个线程来用,充分发挥 CPU 性能,即一个核心可以有两个到多个线程。
    设计决定,intel给他的x86设计了逻辑线程=2物理核心数,ibm的power8是逻辑线程=8物理核心数

2、Windows下查看方法

1、cmd命令下输入“wmic”
2、继续输入“cpu get *”
3、NumberOfCores -> 表示CPU核心数
4、NumberOfLogicalProcessors -> 表示CPU逻辑核数
(亦可以直接使用cpu get NumberOfCores,NumberOfLogicalProcessors来查看)
在这里插入图片描述

3、Linux下查看方法

  • 终端下输入命令:cat /proc/cpuinfo
    在这里插入图片描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

无休止符

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值