调用Runtime.getRuntime()。availableProcessors()

我试图在运行程序时检查系统的性能

我参考这篇文章获取操作系统级别的系统信息

当这个Runtime.getRuntime().availableProcessors(); 执行我得到了答案4

我读了availableProcessors(),但它告诉这个方法返回处理器的数量

  1. 任何人都可以解释处理器的数量是什么意思?
  2. 为什么会得到4结果?

我正在使用Windows 7核心i5 4gp。

非常感谢你

处理器的数量基本上是能够运行你的代码的执行引擎的数量。 其中一个i5变种是一个四核CPU,i5-7系列。 这些可能是物理上不同的处理器(即使它们存在于同一个芯片中),或者当您使用超线程时,它们可能是逻辑处理器。

有关更多详细信息,请参阅http://en.wikipedia.org/wiki/Intel_Core#Core_i5和http://en.wikipedia.org/wiki/Hyper-threading

正如您所阅读的, availableProcessors()是一个返回number of processors available to the JVM方法。 4表示当前可用于JVM的处理器的数量。

这些行将返回Windows和其他操作系统中number of logical cores

在支持超线程四核酷睿i7的电脑上,它将返回8

在具有四核Q6700的计算机上,此方法将返回4

你有一个多核处理器 (在你的情况下,它看起来像Lynnfield )。 由于每个内核可以与其他内核同时执行指令,因此每个内核都可以作为单独的CPU(单独的处理器)来计算信息。

它不提供可用于jvm进程的核心。 如果启用超线程,则实际可能会更大。

在这种情况下,“处理器”是“能够独立执行的硬件”,即CPU 核心

这不是“处理器包” – 你购买的单个硬件单元(实际上是一个包中的4个独立的CPU)