我在Linux服务器上运行了以下Java代码:
while (true) {
int a = 1+2;
}
它导致了一个CPU核心达到了100%的使用率。我对此感到困惑,因为我学过CPU通过时间分割来处理任务,这意味着CPU将在一个时间段内执行一个任务(CPU时间范围调度器)。如果有10个时间段,那么while true任务最多应该使用10%的CPU使用率,因为其他90%将被分配给其他任务。那么为什么是100%呢?
while
循环将使用所有可用的空闲CPU资源的100%,并且只有在启动其他CPU密集型进程时才会开始使用更少。(如果您正在使用Linux / Unix,则可以通过启动while
循环,然后启动另一个CPU密集型进程并观察具有循环的进程的%CPU下降来观察此情况)。