2012-08-09 67 views
8

正在嘗試運行的程序調用Runtime.getRuntime()。availableProcessors()

我指的這個帖子get OS-level system information

當這個Runtime.getRuntime().availableProcessors();執行我得到了一個答案,而檢查系統的性能

我讀availableProcessors()但它告訴該方法返回處理器的數量

  1. 任何人都可以解釋處理器的數量是什麼意思嗎?
  2. 爲什麼會得到4結果?

上午使用的是Windows 7核心i5 4gp。

非常感謝您

+0

你有四核處理器的機器? – Ved 2012-08-09 06:38:09

+1

還是帶有超線程的雙核? – Dahaka 2012-08-09 06:40:29

+0

英特爾酷睿i5 ....... – Amith 2012-08-09 06:43:04

回答

14

處理器的數量基本上是能夠運行你的代碼的執行引擎的數量。其中一個i5變種是4核CPU,即i5-7系列。這些可能是物理上不同的處理器(儘管它們存在於同一芯片內),或者當您使用超線程時它們可能是邏輯處理器。

有關更多詳細信息,請參見​​和http://en.wikipedia.org/wiki/Hyper-threading

3

你有一個multi-core processor(在你的情況下,它看起來像它的Lynnfield)。由於每個內核可以與其他內核同時執行指令,因此每個內核都可以作爲單獨的CPU(單獨的處理器)用於信息目的。

11

正如你所讀,availableProcessor()是一種方法,返回number of processors available to the JVM。 表示當前可用於JVM的處理器數量。

這些行在Windows和其他操作系統中返回number of logical cores

在有支持超線程一個四核酷睿i7一臺電腦,它會返回。

在具有四核Q6700的計算機上,此方法將返回。

3

它沒有提供可用於jvm進程的核心。如果啓用超線程,它可能會更大。

+0

我的意思是核心,核心是獨立的cpu,可以並行執行任務, – 2012-08-09 06:43:54

0

在此上下文中,「處理器」是「能夠獨立執行的硬件」,即CPU 核心

這不是「處理器包」 - 你買(那其實是在一個封裝內4級獨立的CPU)的單一硬件單元

相關問題