8核16线程?代表了什么?
写在前面
最近心血来潮装了一台主机,配置如下:
配置图
单主机的配件价格加起来8K出头,显示器是AOC的4k屏,主商务办公,刷新率只有60HZ,当时狗东价在1800左右。之所以没有等618降价促销的时候再买是因为实在忍不住了,想体验一把装机的快感,毕竟想着以后干不动程序猿了,回家开个电脑店也行,哈哈。
另外这些配件基本都是我在淘宝淘的,再加上我自己做的公众号返还了一部分,其实价格比起618也高不了多少。
image.png
进入主题
CPU我选的是AMD的3700X,比起Inter的i9 9900K 逊色了一些,但价格着实便宜了不少,性价比高。
CPU天梯图
在参数中可以看到,核心/线程为8核心16线程,这个代表什么意思呢?
3700X参数超线程技术
超线程技术(Hyper-threading )是英特尔发明的,在2002年首次应用在Xeon处理器和Pentium 4处理器上,在没有这项技术前,一个单核的CPU在同一时间内只能同时运行一个线程。
image.png比如我们打开一个APP,首先显示正在加载中的Loading图,加载完成之后数据展示出来,这其实是两个线程,一个用于显示Loading图,一个用于加载数据,在单核单线程的CPU,运行如下图:
single core可以看到,其实Loading和拉取数据的两个线程是交替执行的,之所以我们感知不到卡顿是因为CPU切换任务特别快,肉眼很难识别,而实际上,总的运行时间被拉长了。
假设这两个线程的运行没有使用相同的CPU资源,运用了超线程技术就是下图的展示
HT这样,操作系统认为存在了两个核心,会同时给它们分配任务执行,加快了任务的执行效率。
而这实际上并没有增加CPU的核心数,但是在操作系统的视角上,一个物理核心,会被当做两个逻辑核心来处理,分配任务的时候,也是按照逻辑核心来分配的。
当然效率并不是倍数的增加,毕竟CPU物理核心数依然为一个,虽然在逻辑上被当成两个来处理。
总的来说,超线程技术更加适用于多线程处理的应用程序。
image.png参考资料:
https://en.wikipedia.org/wiki/Hyper-threading
https://www.bilibili.com/video/av94339597/
https://en.wikipedia.org/wiki/Multithreading_%28computer_architecture%29
https://www.zhihu.com/question/20277695