CPU与核心
物理核
物理核数量 = cpu数(机子上装的cpu的数量)*每个cpu的核心数
虚拟核
所谓的4核8线程,4核指的是物理核心。通过超线程技术,用一个物理核vwin 两个虚拟核,每个核两个线程,总数为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
+关注
关注
68文章
10854浏览量
211578 -
线程
+关注
关注
0文章
504浏览量
19675
原文标题:认识CPU、核与线程
文章出处:【微信号:Imgtec,微信公众号:Imagination Tech】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论