gpt4 book ai didi

java - Runtime.getRuntime().availableProcessors() 到底返回什么?

转载 作者:行者123 更新时间:2023-12-01 13:43:40 26 4
gpt4 key购买 nike

我的处理器是 Intel® Core™ i7-3610QM 处理器(6M 高速缓存,2.30 GHz),拥有 4 个处理器核心和 8 个线程(这到底意味着什么?)。我正在运行一个简单的 Java 程序来找出“Java 虚拟机可用的处理器”的数量。 (来自 Oracle 的 API,Java 7),它为我返回 8,而不是 4。有人可以解释一下为什么会这样吗?

这是简单的java代码:

public class MyTest {
public static void main(String args[]) {
System.out.println("Number of cores available : " + Runtime.getRuntime().availableProcessors());
}
}

最佳答案

在我看来,这更多是一个硬件问题。

您的处理器有四个物理核心,加上所谓的“超线程”,这本质上意味着“告诉系统您确实有八个核心,即使您有四个核心。”据英特尔称,与仅表示为四核相比,这会带来 10-20% 的性能提升。

您所看到的就是操作系统所看到的:八个核心。从物理上讲,它有四个核心,外加超线程。

您可能想查看this answer on a similar question ,其中指出:

The number of processors is basically the number of execution engines capable of running your code. One of the i5 variants is a 4-core CPU, the i5-7 series. These may be physically distinct processors (even though they exist inside the same chip) or they may be logical processors when you're using hyper-threading.

关于java - Runtime.getRuntime().availableProcessors() 到底返回什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20497324/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com