CPU核心数与线程数详解
CPU:
CPU就是中央处理单元,物理CPU数就是CPU的硬件个数(socket)。
核心:
一开始,每个物理 cpu 上只有一个核心(a single core),对操作系统而言,也就是同一时刻只能运行一个进程/线程。 为了提高性能,cpu 厂商开始在单个物理 cpu 上增加核心(实实在在的硬件存在),也就出现了双核心 cpu(dual-core cpu)以及多核心 cpu(multiple cores),这样一个双核心 cpu 就是同一时刻能够运行两个进程/线程的。
同时多线程技术(simultaneous multithreading)和 超线程技术(hyper–threading/HT)
本质一样,是为了提高单个 core 同一时刻能够执行的多线程数的技术(充分利用单个 core 的计算能力,尽量让其“一刻也不得闲”)。
simultaneous multithreading 缩写是 SMT,AMD 和其他 cpu 厂商的称呼。 hyper–threading 是 Intel 的称呼,可以认为 hyper–threading 是 SMT 的一种具体技术实现。
在类似技术下,产生了如下等价术语:
- 虚拟 core: virtual core
- 逻辑 processer: logical processor
- 线程:thread
所以可以这样说:某款采用 SMT 技术的 4 核心 AMD cpu 提供了 8 线程同时执行的能力;某款采用 HT 技术的 2 核心 Intel cpu 提供了 4 线程同时执行的能力。
为了给电脑更高的性能,一个cup中集成了多个内核,这样电脑的性能就成倍的提升。随着科技的发展,我们发现每个内核的性能也变的十分强大,于是一个内核又被分成两个线程。但是,我们要注意的是,一个cpu分成多个内核,这是物理的分隔,拆开cpu是可以看到的;但是一个内核被分成两个线程是一种超线程技术,也就是串代码,操作系统会认为一个线程也是一个内核,有点欺骗操作系统的感觉。
如果操作系统说我的cpu有四核,这时我们要提高警惕,是真四核还是四线程(假四核)。
这是我的台式机windows10:
任务管理器显示有4核。
设备管理器显示依然为4核
原来我的电脑是假四核。
其实windows有一个命令是可以查看的:
在cmd命令中输入“wmic”,回车;然后再输入“cpu get ”。
NumberOfCores:表示CPU核心数
NumberOfLogicalProcessors:表示CPU线程数
修改处理器个数:
物理内核个数是不能修改的,但是假内核个数是可以修改的:
处理器个数修改成3,保存重启电脑。
任务管理器中已经改变:
设备管理器未发生改变:
如何禁用超线程技术
Hyper-Threading是Intel微处理器采用的一种技术,这种技术能够让微处理器在操作系统和应用程序中的性能表现的类似于两个处理器一样。
进入BIOS,找到 Hyper-Threading选项设置成disable。
保存设置,启动电脑。
任务管理器发生了变化:
设备管理器也发生了变化:变成了2核。
在window10系统中查看着些参数变的十分简单:
打开任务管理器
那么核心数和线程数到底有什么不同昵?
一、意思不同
八核十六线程,八核是指CPU的核心有八个,核心(Core)又称为内核,是CPU最重要的组成部分,十六线程是指CPU的多线程线程数有十六个。六核十二线程是指六个核心,CPU的多线程线程数有十二个。
二、技术不同
八核十六线程是指使用了超线程技术,把一个物理核心,模拟成两个逻辑核心,理论上要像十六颗物理核心一样在同一时间执行十六个线程,所以设备管理器和任务管理器中会显示出十六个核心,但事实上并不是真正的八个核心,八核十六线程就是物理八核加上虚拟八核。
三、优势
前者内核和线程数更高一些,在多任务运行时更有优势,但也要看CPU主频的高低,单看核心数和线程数不是很明显。
八核十六线程在有些情况下比如任务量不大能让CPU利用率提高很多从而使其性能接近十六核CPU的水平,而在另外一些情况比如CPU占用100%满负荷工作的情况下,这时候八核十六线程和十六核的性能表现差距明显。
CPU核心数与线程数详解相关推荐
- CPU的核心数、线程数的关系和区别
我们在选购电脑的时候,CPU是一个需要考虑到核心因素,因为它决定了电脑的性能等级.CPU从早期的单核,发展到现在的双核,多核.CPU除了核心数之外,还有线程数之说,下面笔者就来解释一下CPU的核心数与 ...
- linux 查询内存和核心数,Linux下查看操作系统信息、内存情况及cpu信息:cpu个数、核心数、线程数...
1.查看物理CPU的个数 [root@MysqlCluster01 ~]# cat /proc/cpuinfo |grep "physical id"|sort |uniq|wc ...
- Linux查看系统cpu个数、核心书、线程数
Linux查看系统cpu个数.核心书.线程数 现在cpu核心数.线程数越来越高,本文将带你了解如何确定一台服务器有多少个cpu.每个cpu有几个核心.每个核心有几个线程. 查看物理cpu个数 cat ...
- Java多线程学习九:怎样确定线程数量及CPU 核心数和线程数的关系||如何定制自己的线程池
调整线程池中的线程数量的最主要的目的是为了充分并合理地使用 CPU 和内存等资源,从而最大限度地提高程序的性能.在实际工作中,我们需要根据任务类型的不同选择对应的策略. CPU 密集型任务 首先,我们 ...
- 面试题:合适的线程数量是多少?CPU 核心数和线程数的关系?
合适的线程数量是多少?CPU 核心数和线程数的关系? CPU 密集型任务 首先,我们来看 CPU 密集型任务,比如加密.解密.压缩.计算等一系列需要大量耗费 CPU 资源的任务.对于这样的任务最佳的线 ...
- 线程池大小设置,CPU的核心数、线程数的关系和区别,同步与堵塞完全是两码事
线程池应该设置多少线程合适,怎么样估算出来.最近接触到一些相关资料,现作如下总结. 最开始接触线程池的时候,没有想到就仅仅是设置一个线程池的大小居然还有这么多的学问,汗颜啊. 首先,需要考虑到线程池所 ...
- cpu核数和逻辑个数的区别_解释一下CPU的核心数与线程数的关系和区别
我们在选购电脑的时候,CPU是一个需要考虑到核心因素,因为它决定了电脑的性能等级.CPU从早期的单核,发展到现在的双核,多核.CPU除了核心数之外,还有线程数之说,下面文本就来解释一下CPU的核心数与 ...
- 【转】cpu的核心数与线程数的关系
原文地址:http://www.dn580.com/dnzs/dncs/2013/10/08/172948914.html 我们在选购电脑的时候,CPU是一个需要考虑到核心因素,因为它决定了电脑的性能 ...
- 查看CPU的核心数、线程数
方法一:进入系统的任务管理器:点击"性能"标签,找到CPU项,如下图所示: 注意:设备管理器中的处理器数量为线程数: 因为Intel的超线程技术存在,它把一个CPU内核虚拟化为类似 ...
最新文章
- LA3403天平难题(4个DFS)
- Bat 循環執行範例
- 带你遍历用户生命价值与流失挽救(上) : 流量下的价值套路
- 数据仓库中捕获变化数据(CDC,Changed Data Capture)的四种手法
- springBoot整合Ehcache——工具类调用
- chromebook刷机_如何在Chromebook上切换(或离开)Canary频道
- 15岁大学毕业,一生800多篇专著论文,双眼失明却凭一条公式称霸数学界
- java面试题43要使某个类能被同一个包中的其他类访问,但不能被这个包以外的类访问,可以( )
- 被指抄袭后 新浪微博APP绿洲更换Logo 重新上架
- 时间函数strtotime
- 途牛旅游系统架构的优化实践
- matlab函数关系式,怎么用MATLAB建立数据间的函数关系
- mysql truncate分区表_MySQL分区表的管理~1
- 电脑鼠标右键菜单反应慢怎么办?右键菜单反应慢解决办法
- 品牌公寓+电子合同,开拓年轻人租房市场
- 30 年的 Hello world
- java switch的意思_switch与java
- 关于面向过程和面向对象的理解
- 管程法解决生产者消费者问题
- 微博登录接入出现错误码21322(重定向地址不匹配),其他解决方法
热门文章
- input的type=number时可以输入字母e的解决方式
- 《美丽新世界》读书笔记20.8.12
- count(),count(1),count(*)
- 手机发射机的功能电路(2)---发射机调制方式
- Poco线程池使用实例
- qpython3.7.4版本下载_QPython OH最新版本下载-QPython OH appv3.1.0 最新版-腾牛安卓网
- 项目实战——基于Java8+JavaFX+多线程+文件IO+SQLite数据库实现的本地文件快速搜索引擎详细设计实现
- vue 项目如何读取本地json文件数据
- 腾讯官方可编程QQ机器人来了?QQHook
- HTTP常见状态码(404、400、500)等错误