2009-09-28 32 views
1

有沒有一種獨立於平臺的方法來檢測Java中物理和/或虛擬處理器的數量?一個可能的解決方案是檢測操作系統並使用Windows環境變量「NUMBER_OF_PROCESSORS」。 Linux和Mac OS X有類似的產品嗎?但是,這可能不是最好的解決方案。檢測Java中處理器數量的平臺無關方式

回答

8

這可能有助於從

http://www.javadb.com/get-number-of-available-processors

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html

Runtime runtime = Runtime.getRuntime(); 
int nrOfProcessors = runtime.availableProcessors(); 
+0

是的,但請注意jarnbjo的答案 - 這不會讓您知道機器中實際的核心數或處理器數量,而只是JVM可用的核心數或處理器數。文檔說這個數字甚至可能在程序運行時發生改變! – Jesper 2009-09-29 09:14:01

2

注意Runtime#getAvailableProcessors()回報提供給Java虛擬機的處理器數量和處理器的數量不限可用於系統(如果那件事)。例如。使用操作系統工具將Java進程固定到特定處理器通常會對返回值產生直接影響,因此不要依賴此值在虛擬機的執行時間內不會更改。