是否有一种独立于平台的方法来检测Java中的物理和/或虚拟处理器的数量?一种可能的解决方案是检测操作系统并使用Windows环境变量“NUMBER_OF_PROCESSORS”。 Linux和Mac OS X有类似的产品吗?然而,这可能不是最好的解决方案。
答案 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的执行时间内不要更改。