以编程方式以受控方式增加 CPU 使用率

use*_*185 5 java eclipse cpu-usage

我想通过 java 程序增加 CPU 使用率,尽管是以受控的方式。比如说,用户可以指定“高”、“中”或“低”等参数,我应该能够根据用户的选择将 CPU 增加一定数量。假设对于高,我希望它增加 5%,对于中,我希望它增加 3%,对于低,我希望它增加 1%。这是否可以通过干净而高效的方法(不仅仅是使用 while 和 for 循环)实现?如果是,那么精度和准确度如何以及如何?

提前致谢

thk*_*ala 2

您可以通过在代码中插入 sleep 语句(例如 )来修改 Java 程序产生的 CPU 负载Thread.sleep(),并使用可变延迟来更改负载。最简单的情况是循环中的 sleep 语句,在单独的线程中为要加载的每个 CPU 核心执行。

也就是说,Java 不适合这项任务 - 如果您确实需要您所描述的那种精度,则不适合。垃圾收集器和其他因素使其行为相当不可预测。

在我自己的应用程序中,对于相同的输入,我经常会得到 10% 范围内的吞吐量变化,但没有明显的原因。正是由于这个原因,Java 也不被认为适合实时应用程序。

如果您提到您出于什么目的需要做类似的事情,这可能会帮助我们提供更好的答案 - 也许,为什么您需要在Java中做...