仅使用2个CPU内核和Java

时间:2013-12-04 14:41:55

标签: java

是否有办法将Java应用程序编码为仅使用CPU的2个CPU核心。例如,我想设置CPU利用率的限制。这在Java中是否可行?

4 个答案:

答案 0 :(得分:3)

我认为这是需要在操作系统级别处理的内容,因此无法通过Java代码进行控制。看看这篇文章。我希望它有所帮助。

Is it possible to force an existing Java application to use no more than x cores?

答案 1 :(得分:3)

如果使用线程池并将线程数限制为2,则可以同时使用不超过2个核心。但是,这是限制CPU使用率的一种不好的方法,甚至可能在您的方案中不可能(这取决于您的应用程序必须运行多少并发任务)。

答案 2 :(得分:1)

您无法直接控制此操作。但是如果将线程数限制为两个,它将始终只使用最多两个核心。

但请注意

a)使用的实际核心可能会有所不同,因为调度程序可能会将线程从一个核心移动到另一个核心

b)可能有其他线程由JVM启动(例如用于垃圾收集),您可能不会仅仅查看您的应用程序。

答案 3 :(得分:1)

您无法将线程分配给核心,因此您无法执行此操作。

您可以做的是使用JNI执行此类任务或使用线程的优先级机制。