我如何让 java.exe 使用多个 CPU?

我如何让 java.exe 使用多个 CPU?

我在 Windows 7 (x64) 机器上运行 Hudson:只需使用“java -jar hudson.war”即可启动。由于某种原因,java 进程仅使用一个 CPU(共 2 个可用 CPU),尽管它正在运行多个线程。我很确定操作系统的默认行为是将多线程程序的线程分散到 CPU 上,除非另有明确说明(如果我没记错的话,使用一些 SetProcessorAffinity api)。

有没有办法告诉 java 使用多个 CPU?

答案1

通常,java.exe会自动将线程放到不同的 CPU 上。

如果没有,则可能是因为该程序是 I/O 密集型的,而不是 CPU 密集型的,或者是因为同步导致线程无法同时运行。

http://www.oracle.com/technetwork/java/hotspotfaq-138619.html#perf_scaling了解更多信息。

您可能需要调试 Hudson 才能知道它为什么只使用一个处理器。

相关内容