当程序的执行效率要求较高时,可以考虑多线程技术,在使用多线程之前,需要我们了解自己的电脑或者服务器的CPU线程数量,线程数量与CPU核数有关系,因此如何查看电脑和服务器的CPU核数与线程数将是我们运用多线程技术需要解决的首要问题。
总核数 = 物理CPU个数 X 每颗物理CPU的核数
总逻辑CPU数(也即线程数) = 物理CPU个数 X 每颗物理CPU的核数 X 超线程数
如果CPU核数和逻辑数相同,说明该CPU没有超线程,反之则有,如本例中的CPU就是双线程的。
电脑CPU核心数量与线程数量:
在打开的运行框中输入cmd,进入cmd窗口,输入wmic回车,再输入cpu get回车即可获取到CPU详情,往后拖动滑块找到两个值,一个是NumberOfCores表示是核心数,另一个是NumberOfLogicalProcessors表示线程数。
查找资料时,发现有资料提到任务管理器中“CPU使用记录”的方框数量,或者设备管理器中“处理器”下CPU记录数量就是CPU核心数量,这种说法是不严谨的。我的笔记本电脑CPU 是i5-2450M,“CPU使用记录”的方框数量以及设备管理器中“处理器”下CPU记录数量都是4,但是通过查阅该CPU的资料,发现该CPU其实是双核4线程。因此,查看电脑的核心和线程数量的最可靠做法是cmd命令。
服务器CPU核心数量与线程数量:
1、查看CPU型号
cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c
2、查看CPU物理个数
cat /proc/cpuinfo |grep “physical id” | sort | uniq | wc -l
(备注:最后一个是小写字母l)
3、查看单个CPU核数
cat /proc/cpuinfo| grep “cpu cores”| uniq
4、查看CPU逻辑数
cat /proc/cpuinfo| grep “processor”| wc -l
参考资料:
https://zhidao.baidu.com/question/1609275974943756907.html
https://cloud.tencent.com/info/a24bcc2a921094108b7eaa5b0363a997.html