是否有办法将Java应用程序编码为仅使用CPU的2个CPU核心。例如,我想设置CPU利用率的限制。这在Java中是否可行?
答案 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执行此类任务或使用线程的优先级机制。