Java 以有控制的方式以编程方式提高CPU使用率

Java 以有控制的方式以编程方式提高CPU使用率,java,eclipse,cpu-usage,Java,Eclipse,Cpu Usage,我想通过一个java程序来提高我的CPU使用率,尽管是以一种可控的方式。比如说,用户可以指定“高”、“中”或“低”等参数,我应该能够根据用户的选择将CPU增加一定量。比如说,我希望它在高水平上增加5%,在中水平上增加3%,在低水平上增加1%。 使用干净高效的方法(而不仅仅是使用while和for循环)是否可以做到这一点?如果是,那么精度和准确度如何以及如何 提前感谢CPU使用由底层操作系统控制。操作系统将确定执行给定任务所需的CPU使用量。 由于CPU的使用由操作系统控制,因此无法通过java直

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


提前感谢

CPU使用由底层操作系统控制。操作系统将确定执行给定任务所需的CPU使用量。 由于CPU的使用由操作系统控制,因此无法通过java直接控制


您唯一能做的就是更改线程优先级以间接控制CPU的使用,或者您可以在给定的时间内使线程处于休眠状态。

编写一个只有一个线程的java程序,也就是说,在主方法中创建一个无限while循环,该循环将继续执行。 您将发现CPU使用率将增加。 如果您在这个while循环中没有任何睡眠,您将发现您的程序将占用几乎100%的CPU。
在这个while循环中投入的睡眠越多,程序占用的CPU就越少

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

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

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


如果您提到这样做的目的,以及为什么需要使用Java…

Ok,这可能会帮助我们提供更好的答案。你能详细说明一下吗?事实上,我的应用程序模拟了任何其他应用程序的处理能力,使用了另一个JAVA库,这在其他语言中是不可用的。这就是为什么我需要用JAVA来实现它。