0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CPU与核心及进程和线程认识

Dbwd_Imgtec 来源:未知 作者:李倩 2018-03-30 14:48 次阅读

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
    +关注

    关注

    68

    文章

    10859

    浏览量

    211701
  • 线程
    +关注

    关注

    0

    文章

    504

    浏览量

    19682

原文标题:认识CPU、核与线程

文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    进程线程的区别

    的重要区别。进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位. 线程进程的一个实体,是CP
    发表于 12-12 09:28

    【Nanopi2试用体验】高级(十):进程绑定CPU核心

    1994568800分别在四个CPU核心上运行了一段时间。在一些嵌入式设备中,运行的进程线程比较单一,如果指定进程
    发表于 02-03 17:28

    进程线程的通俗解释

    本帖最后由 柠檬守护 于 2016-8-10 17:42 编辑 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。最近,我读到一篇材料,发现有一个
    发表于 08-10 17:31

    进程线程区别

    `1、进程线程的区别和联系进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。计算机的核心
    发表于 11-30 14:06

    线程进程、程序的区别

    是为了节约CPU时间,发挥利用,根据具体情况而定。线程的运行中需要使用计算机的内存资源和CPU。通常在一个进程中可以包含若干个线程,它们可以
    发表于 03-23 13:09

    关于“进程”与“线程”的最通俗解析

    ` 进程(process)和线程(thread)是操作系统的基本概念,但是它们比较抽象,不容易掌握。 最近,我读到一篇材料,发现有一个很好的类比,可以把它们解释地清晰易懂。 1、计算机的核心
    发表于 06-02 07:43

    线程进程有哪些区别?

    线程进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程
    发表于 07-20 07:48 1971次阅读
    <b class='flag-5'>线程</b>与<b class='flag-5'>进程</b>有哪些区别?

    一文读懂线程进程、程序之间的不同

    线程进程的区别在于,子进程和父进程有不同的代码和数据空间,而多个线程则共享数据空间,每个线程
    发表于 03-12 08:48 1342次阅读
    一文读懂<b class='flag-5'>线程</b>、<b class='flag-5'>进程</b>、程序之间的不同

    进程线程定义

    线程CPU调度的最小单位(程序执行流的最小单元),它被包含在进程之中,是进程中的实际运作单元。一条线程
    的头像 发表于 11-20 10:23 2659次阅读

    线程进程的关系与区别

    线程CPU调度的最小单位(程序执行流的最小单元),它被包含在进程之中,是进程中的实际运作单元。一条线程
    的头像 发表于 11-29 11:01 1.4w次阅读

    进程线程分别是什么,它们的区别是什么

    一、定义 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。 线程进程的一个实体,是CP
    发表于 03-24 17:26 9388次阅读
    <b class='flag-5'>进程</b>和<b class='flag-5'>线程</b>分别是什么,它们的区别是什么

    讲讲线程进程CPU中的超线程

    因此,超线程简单来讲就是把这些不能公用的资源加倍。而那些流水线上的操作逻辑电路、ALU单元等则可以不用复制。以此实现多个线程同时在一个CPU核心中进行处理。
    的头像 发表于 08-05 16:38 2532次阅读

    CPU核心中idle进程作用

    每一个 CPU 核心都会有一个 idle 进程,idle 进程是当系统没有调度 CPU 资源的时候,会进入 idle
    的头像 发表于 10-14 09:28 1956次阅读

    进程线程的区别以及优缺点

    进程线程 1、什么是进程线程,有什么区别? 进程是资源(CPU、内存等)分配的基本单位,
    的头像 发表于 07-21 11:02 1381次阅读

    mcu线程进程的区别是什么

    是程序执行的基本单位,它是进程中的一个实体,是进程内的一条执行路径。线程CPU调度的最小单位,它可以看作是轻量级的进程,不拥有独立的地址空
    的头像 发表于 01-04 10:45 747次阅读