java線程數設置和系統cpu的關系


這里的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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM