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利用率不高,此时建议可以给多一点线程
总结:如果要提高性能,一是在硬件层面提高处理速度或者核心数;二是根据场景,合理设置现场数量

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

  1. c和cpp实现CPU核上绑定固定线程

    文章目录 参考链接: 相关概念及工具 CPU亲和性 查看cpu有几个核 命令查看 代码查看 代码讲解 cpu集(cpu_set_t) cpu_set_t的使用 非动态分配cpu_set_t 动态分配c ...

  2. 使用 sched_setaffinity 将线程绑到CPU核上运行

    linux 提供CPU调度函数,可以将CPU某一个核和指定的线程绑定到一块运行. 这样能够充分利用CPU,且减少了不同CPU核之间的切换,尤其是在IO密集型压力之下能够提供较为友好的性能. 通过sch ...

  3. taskset -pc PID 查看线程占用cpu核

    taskset -pc  PID 可以用于 查看 当前线程 对应绑定的 在 哪个核上面. 这个 可以用于 程序优化, 查看 哪个线程占用的 cpu 比重比较高 首先 可以通过  top  -H   - ...

  4. 为什么要把进程/线程绑定到特定cpu核上运行?(cpu core id coreIdx)opdevsdk_sys_bindThreadCoreId()

    看海康hikflow_demo代码,在线程处理函数里调用了绑定函数,把这个线程绑定到某个cpu核上,不知为何要这么做? 原因 答1 现在大家使用的基本上都是多核cpu,一般是4核的.平时应用程序在运行 ...

  5. 转:认识cpu、核与线程

    转自: https://www.cnblogs.com/-new/p/7234332.html 前言:作为一个后台开发人员,我想有必要了解这些基础知识.如果本文有不严谨或者疏忽的地方,请指正. 目录 ...

  6. linux指定cpu运行程序,进程/线程绑定到特定CPU核的linux实现(有代码有实例)

    前言 现在计算机上的CPU大多都是多核的,有4核甚至是8核的.但是一个计算机启动之后其进程数是远远多于CPU核数的,因为操作系统会给自动调度这些进程在CPU核上轮流运行.但是对于应用程序或者进程,其性 ...

  7. Linux系统操作(21):物理cpu数、cpu核数、逻辑cpu数、几路几核几线程、CPU信息详细查询方法

    文章目录 一.名词解释 二.查看CPU信息 参考文献 未看完的参考文献 一.名词解释 CPU(Central Processing Unit): 中央处理单元, 物理cpu数: 物理CPU数就是实际S ...

  8. CPU个数、CPU核心数、CPU线程数

    核心概念 CPU个数:CPU芯片个数 CPU的核心数:是指硬件上存在着几个核心. 比如,双核就是包括2个相对独立的CPU核心单元组,四核就包含4个相对独立的CPU核心单元组. 线程数:一种逻辑的概念, ...

  9. i5四核八线程怎么样_四核八线程和六核六线程cpu相比哪个好?

    展开全部 六核六线程cpu比较好e69da5e6ba903231313335323631343130323136353331333433633464. 英特尔六核六线程是第八代的Core i5,最好的 ...

最新文章

  1. Python环境的安装(Anaconda+Jupyter notebook+Pycharm)
  2. LeetCode-字符串-58. 最后一个单词的长度
  3. WebAPI(part10)--动态生成表格
  4. Eevnt Loop (事件循环)
  5. 卢伟冰曝Redmi K50系列最新进展:天玑9000调校比较顺利
  6. Python提取docx文档中例题、插图、表格清单
  7. python不用模块随机列表_python不用库实现随机 如何用python实现随机抽取
  8. Simulink仿真---clark变换、反clark变换
  9. 永别了.武器------爱好和平人民的美好愿望(图)
  10. centos桌面显示计算机图标,Centos 桌面图标
  11. 计算机3c认证 标准,计算机3C认证怎么办理,检测标准是什么?
  12. 阿里云服务器apt install 出错怎么办?出现Package gdb is not available, but is referred to by another package怎么办
  13. 电子设计教程48:流水灯电路-完整电路设计
  14. 一些常用的数学在线计算器
  15. linux服务器上的项目读取本地文件,java访问linux服务器读取文件路径
  16. 日撸 Java 三百行(81-90天,CNN 卷积神经网络)
  17. 1、微信公众号开发之环境搭建
  18. 22届硕士,去年秋招拿了字节跳动offer,有一说一,不是很难进
  19. 百度ai文字转语音并下载php源码,一种基于百度AI的网页版在线语音包转文字的方法与流程...
  20. 装配图中齿轮的画法_一级圆柱齿轮减速器装配图的画法

热门文章

  1. 公众号开发(1) —— natapp 内网穿透
  2. BIM和IoT数据源框架
  3. ACM期刊/会议中的CCS CONCEPTS
  4. mysql双主可以同时写数据_Mysql双主操作
  5. 西数首次展示混合硬盘:24GB闪存
  6. WuThreat身份安全云-TVD每日漏洞情报-2023-01-17
  7. 使用NDB调试网络栈
  8. 实况2012里的电梯球的踢法(手柄)
  9. 如何使用BackTrack破解WIFI无线网络的WEP密钥
  10. Maven项目打包遇到的两个问题