繁体   English   中英

Runtime#availableProcessors()在Linux服务器上未返回正确的结果

[英]Runtime#availableProcessors() doesn't return correct result on Linux server

我通常运行Runtime#availableProcessors来确定Windows计算机上有多少个内核,并且工作正常。 结果与我从控制面板中找到的结果一致。

但是,当我在Linux服务器上应用API时,它返回1 据我所知,服务器功能更强大,对我来说这没有意义,因为它是单个cpu系统。

我进行了一些搜索,发现Linux机器是Intel(R) Xeon(R) CPU X5675 @ 3.07GHz ,谷歌搜索显示它具有6 cpu内核。

然后的问题是,为什么Runtime#availableProcessors报告错误? 是虫子吗?

谢谢,

约翰

这是/proc/cpuinfo的整个输出

processor       : 0
vendor_id       : GenuineIntel
cpu family      : 6
model           : 44
model name      : Intel(R) Xeon(R) CPU           X5675  @ 3.07GHz
stepping        : 2
cpu MHz         : 3059.000
cache size      : 12288 KB
fpu             : yes
fpu_exception   : yes
cpuid level     : 11
wp              : yes
flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss syscall nx rdtscp lm constant_tsc up ida nonstop_tsc arat pni ssse3 cx16 sse4_1 sse4_2 popcnt lahf_lm
bogomips        : 6118.00
clflush size    : 64
cache_alignment : 64
address sizes   : 40 bits physical, 48 bits virtual
power management: [8]

它必须是服务器的配置方式(也许您正在VM中运行)。 当我在个人Linux笔记本电脑上运行时,

public static void main(String[] args) {
    System.out.println(Runtime.getRuntime().availableProcessors());
}

我懂了

4

因为这台机器有四个核心。 cat /proc/cpuinfo报告相同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM