【问题标题】:Platform Independent Way of Detecting the Number of Processors in Java在 Java 中检测处理器数量的平台无关方式
【发布时间】:2010-12-02 03:24:47
【问题描述】:

是否有独立于平台的方法来检测 Java 中物理和/或虚拟处理器的数量?一种可能的解决方案是检测操作系统并使用 Windows 环境变量“NUMBER_OF_PROCESSORS”。 Linux 和 Mac OS X 是否有类似的产品?然而,这可能不是最好的解决方案。

【问题讨论】:

    标签: java operating-system


    【解决方案1】:

    这可能会有所帮助,来自

    https://web.archive.org/web/20160401052253/http://www.javadb.com/get-number-of-available-processors/

    https://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Runtime.html

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

    【讨论】:

    • 是的,但请注意 jarnbjo 的回答 - 这并不能让您获得机器中核心或处理器的真实物理数量,而只是 JVM 可用的核心或处理器数量。文档说这个数字甚至可能在程序运行时发生变化!
    【解决方案2】:

    请注意,Runtime#getAvailableProcessors() 返回的是 Java VM 可用的处理器数量,而不是系统可用的处理器数量(如果重要的话)。例如。使用操作系统工具将 Java 进程固定到特定处理器通常会立即对返回值产生影响,因此不要依赖此值在 VM 执行期间不会发生变化。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      • 2013-11-09
      • 2010-12-13
      • 2013-10-16
      • 2011-04-02
      相关资源
      最近更新 更多