用于检测Java中处理器数量的平台无关方式

时间:2009-09-28 21:09:34

标签: java operating-system

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

2 个答案:

答案 0 :(得分:8)

这可能有所帮助,来自

http://www.javadb.com/get-number-of-available-processors

http://java.sun.com/j2se/1.4.2/docs/api/java/lang/Runtime.html

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

答案 1 :(得分:2)

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