有没有办法强制JVM在单个处理器或Core上运行

时间:2010-05-03 13:42:30

标签: java concurrency

在Java中,有没有办法强制JVM实例在单个CPU / Core上运行。

此外,还有一种方法可以让给定的线程找出它运行的CPU吗?

2 个答案:

答案 0 :(得分:5)

这不是在JVM / Java级别控制,而是在OS /平台级别控制。例如,在Windows中,您可以转到任务管理器中的进程选项卡,并通过在右键单击菜单中选择适当的选项为大多数进程设置 Affinity 。通过这种方式,您基本上可以控制允许进程使用的CPU /核心。

答案 1 :(得分:2)

  

有没有办法强制JVM在单个处理器或Core上运行。

是。有专门针对特定操作系统的工具。

  

在Java中,有没有办法强制JVM实例在单个CPU / Core上运行。

没有

  

此外,还有一种方法可以让给定的线程找出它运行的CPU吗?

没有。 (一个解决这个问题的线程意味着你在Java中这样做......)

这些答案应该是合格的,说不可能在纯Java 中做这些事情。您可能能够使用JNI调用某些特定于操作系统的本机API来执行这些操作。但是从命令提示符或某些适当的OS管理GUI执行任务更简单,更清晰。