CPU与核心

物理核

物理核数量 = cpu数(机子上装的cpu的数量)*每个cpu的核心数

虚拟核

所谓的4核8线程,4核指的是物理核心。通过超线程技术,用一个物理核模拟两个虚拟核,每个核两个线程,总数为8线程。

在操作系统看来是8个核,但是实际上是4个物理核。

通过超线程技术可以实现单个物理核实现线程级别的并行计算,但是比不上性能两个物理核。

单核cpu和多核cpu

都是一个cpu,不同的是每个cpu上的核心数

多核cpu是多个单核cpu的替代方案,多核cpu减小了体积,同时也减少了功耗

一个核心只能同时执行一个线程

进程和线程

理解

进程是操作系统进行资源(包括cpu、内存、磁盘IO等)分配的最小单位

线程是cpu调度和分配的基本单位

我们打开的微信,浏览器都是一个进程

进程可能有多个子任务,比如微信要接受消息,发送消息,这些子任务就是线程。

资源分配给进程,线程共享进程资源。

对比

线程切换

cpu给线程分配时间片(也就是分配给线程的时间),执行完时间片后会切换都另一个线程。

切换之前会保存线程的状态,下次时间片再给这个线程时才能知道当前状态。

从保存线程A的状态再到切换到线程B时,重新加载线程B的状态的这个过程就叫上下文切换。

而上下切换时会消耗大量的cpu时间。

线程开销

上下文切换消耗

线程创建和消亡的开销

线程需要保存维持线程本地栈,会消耗内存

串行,并发与并行

串行

多个任务,执行时一个执行完再执行另一个。

比喻:吃完饭再看球赛。

并发

多个线程在单个核心运行,同一时间一个线程运行,系统不停切换线程,看起来像同时运行,实际上是线程不停切换。

比喻: 一会跑去食厅吃饭,一会跑去客厅看球赛。

并行

每个线程分配给独立的核心,线程同时运行。

比喻:一边吃饭一边看球赛。

多核下线程数量选择

计算密集型

程序主要为复杂的逻辑判断和复杂的运算。

cpu的利用率高,不用开太多的线程,开太多线程反而会因为线程切换时切换上下文而浪费资源。

IO密集型

程序主要为IO操作,比如磁盘IO(读取文件)和网络IO(网络请求)。

因为IO操作会阻塞线程,cpu利用率不高,可以开多点线程,阻塞时可以切换到其他就绪线程,提高cpu利用率。

总结

提高性能的一种方式:提高硬件水平,处理速度或核心数。

另一种方式:根据场景,合理设置线程数,软件上提高cpu利用率。

cpu的核数和进程_CPU与核心及进程和线程认识相关推荐

  1. cpu核数和逻辑个数的区别_CPU逻辑核心数和物理核心数是什么意思?

    展开全部 1.物理cpu数:主板上实际插入的cpu数量,可以数不重e69da5e887aa3231313335323631343130323136353331333366303666复的 physic ...

  2. cpu的核数和进程_CPU核数和线程数有什么用?什么意思?CPU核数和线程的关系与区别...

    我们在组装电脑选购硬件的时候,大多数的人群更在乎CPU的性能,除了考虑架构.工艺.单核性能等,还需要考虑核心和线程数量,CPU从早期的单核,发展到现在的双核.多核,除了核心数量之外,还有线程数量.那么 ...

  3. cpu核数和逻辑个数的区别_CPU的核心数与线程数的关系和区别

    我们在选购电脑的时候,CPU是一个需要考虑到核心因素,因为它决定了电脑的性能等级.CPU从早期的单核,发展到现在的双核,多核.CPU除了核心数之外,还有线程数之说,下面就来解释一下CPU的核心数与线程 ...

  4. cpu核数和逻辑个数的区别_CPU的核心数、线程数的关系和区别

    展开全部 一.关系:e69da5e6ba903231313335323631343130323136353331333431363030 1.线程数可以模拟出不同的CPU核心数. CPU的核心数指的是 ...

  5. cpu的核数和进程_多线程,多进程,多核总结

    最近在做并行编程,多线程,多进程,多核的概念令人迷惑,总结一下: 计算机的cpu物理核数是同时可以并行的线程数量(cpu只能看到线程,线程是cpu调度分配的最小单位),由于超线程技术,实际上可以并行的 ...

  6. 我要理解的CPU、核心,进程、线程,串行、并发、并行

    注意看修饰词. 1.计算机硬件基本组成 一个计算机(冯·诺依曼结构)[主要]硬件组成: 主板:是"交通枢纽",各个部件工作的所在平台,它负责将各个部件紧密连接在一起,各部件通过主板 ...

  7. CPU核心、进程、线程

    目录 CPU核心和线程数 CPU内核 CPU核心数 CPU与线程数 线程和进程 进程 线程 线程和进程的关系 线程的类型(留坑) Python多线程(留坑) 参考 CPU核心和线程数 CPU个数即CP ...

  8. php进程通讯 windows,windows-server-2008 – PHP进程一次运行一个,总是占用一个核心的100%...

    我们有七个用 PHP编写的网站,运行在带有IIS 7.5的Windows 2008服务器上.他们现在都很慢. 当我查看任务管理器时,我看到大约10个php-cgi.exe进程,它们都占用了0%的cpu ...

  9. make -j8以及linux下查看cpu的核数

    # 总核数 = 物理CPU个数 X 每颗物理CPU的核数 # 总逻辑CPU数 = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数# 查看物理CPU个数 cat /proc/cpuinfo| g ...

最新文章

  1. 发布在《30天自制操作系统》之前的帮助阅读贴
  2. led显字风扇原理?
  3. randomaccessfile在移动设备多线程多服务器下载时写入慢的问题
  4. 刚回到北京,倒时差中……
  5. 电脑下面的任务栏怎么取消隐藏_电脑桌面右下方任务栏的小图标如何隐藏
  6. 系统相机裁剪比例_要不要买全画幅相机?
  7. Persistent Memory错误注入测试
  8. 金属材料手册_不锈钢品种手册简化版
  9. WebService入门案例
  10. 文件不能自动求和_Excel求和公式函数的使用方法教程
  11. python中的映射_一文读懂Python中的映射
  12. 龙芯ejtag 单步调试pmon
  13. 全国地址邮编.sql
  14. sax解析xml详解
  15. [离散数学]集合论基础P_4:运算定律及其证明
  16. 企业云计算运营模式,主要分为哪3种运营模式?
  17. php夜间,php实现自动开启/关闭夜间模式
  18. 升级 | 联想Y430p更换SSD、增加8G内存条
  19. python 使用for循环,遍历列表里想要的值
  20. 蓝月亮做java好吗,“蓝月亮”蓝吗?历史上真正的蓝月亮,你真就不敢看

热门文章

  1. iOS 简单实用的音乐播放器,少年,自己做个歌单吧。。。。。。
  2. 鼠标滚轮控制横向滚动条
  3. kafka删除topic时,显示marked for deletion
  4. @EnableCaching、@Cacheable、@CachePut、@CacheEvict、@Caching、@CacheConfig:缓存核心注解,用来实现缓存功能...
  5. 四、Node.js - 数据库与身份认证
  6. 关于parcel的介绍
  7. 请编写一个主程序文件 main1.c 和一个子程序文件 sub1.c, 要求:子程序sub1.c 包含一个算术运算函数 float x2x(int a,int b),此函数功能为对两个输入整型参数做某
  8. ArcGlobe三维开发之十八——纵断面图的绘制
  9. python爬hdu网页
  10. Ubuntu 修改中文字体教程