我的处理器是英特尔®酷睿™i7-3610QM处理器(6M高速缓存,2.30 GHz),拥有4个处理器内核和8个线程(这应该是什么意思?)。我正在运行一个简单的Java程序来查找“Java虚拟机可用的处理器”的数量。 (来自Oracle,Java 7的API),它为我返回8,而不是4.有人能解释我为什么会这样吗?
这是简单的java代码:
public class MyTest {
public static void main(String args[]) {
System.out.println("Number of cores available : " + Runtime.getRuntime().availableProcessors());
}
}
答案 0 :(得分:1)
这更像是IMO的硬件问题。
你的处理器是四个物理内核,还有一个叫做“超线程”的东西,这实际上意味着“告诉系统你真的有八个核心,即使你有四个核心。”根据英特尔的说法,与仅将其表示为四核相比,性能提升了10-20%。
您所看到的是操作系统看到的内容:八个内核。从物理上讲,它是四个核心,加上超线程。
您可能希望看到this answer on a similar question,其中说明:
处理器的数量基本上是执行引擎的数量 能够运行你的代码。其中一个i5变种是4核CPU, i5-7系列。这些可能是物理上不同的处理器(甚至 虽然它们存在于同一芯片内)或者它们可能是合乎逻辑的 您使用超线程时的处理器。