這里的cpu個數不是指系統的cpu總個數,也不是指cpu總核心數,而是指cpu的總邏輯處理單元即超線程的個數。
IO密集型程序(如數據庫數據交互、文件上傳下載、網絡數據傳輸等等)設置線程數為2倍的總邏輯處理單元個數。
計算密集型程序(如數據轉換,遞歸,復雜算法,加解密程序)設置線程數為總邏輯處理單元個數+1。
java中總邏輯處理單元個數獲取方法:Runtime.getRuntime().availableProcessors()
一般我們說一台電腦有多少個物理cpu,共多少核,共多少線程。
CPU總核數 = 物理CPU個數 * 每顆物理CPU的核數;
總邏輯CPU數 = 物理CPU個數 * 每顆物理CPU的核數 * 超線程數;
windows查看總邏輯cpu數方法:
1、設備管理器->處理器
如圖共4個邏輯CPU數/邏輯處理單元/線程
2、任務管理器->性能
如圖4個槽就代表4個邏輯CPU數/邏輯處理單元/線程
一般,總核心數=總邏輯CPU數/2
linux查看總邏輯cpu數方法:
查看CPU信息(型號) [root@AAA ~]# cat /proc/cpuinfo | grep name | cut -f2 -d: | uniq -c 24 Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz # 查看物理CPU個數 [root@AAA ~]# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l 2 # 查看每個物理CPU中core的個數(即核數) [root@AAA ~]# cat /proc/cpuinfo| grep "cpu cores"| uniq cpu cores : 6 # 查看邏輯CPU的個數 [root@AAA ~]# cat /proc/cpuinfo| grep "processor"| wc -l 24
https://www.cnblogs.com/bugutian/p/6138880.html