gpt4 book ai didi

cpu - 为什么 “while true”将使用100%的CPU资源?

转载 作者:行者123 更新时间:2023-12-04 17:14:38 34 4
gpt4 key购买 nike

我在Linux服务器上运行了以下Java代码:

while (true) {
int a = 1+2;
}

它导致一个CPU内核的使用率达到100%。我对此感到困惑,因为我了解到CPU通过时间分割来处理任务,这意味着CPU将在一个时隙(CPU时间范围调度程序)中完成一项任务。如果有10个时隙,则true任务最多应使用10%的CPU使用率,因为其他90%将分配给其他任务。那么为什么是100%?

最佳答案

如果您的CPU使用率不是100%,则该进程可以使用任意数量的资源(最多100%),直到其他进程请求使用资源为止。 process scheduler尝试使CPU使用率最大化,并且如果没有其他进程需要它,则永远不要让进程饿死CPU时间。

因此,您的while循环将使用100%的可用空闲CPU资源,并且仅在启动其他占用大量CPU的进程时才开始使用较少的资源。 (如果您使用的是Linux/Unix,则可以通过启动top循环,然后启动另一个占用大量CPU的进程,并通过循环查看该进程的CPU占用率下降百分比),使用while进行观察。

关于cpu - 为什么 “while true”将使用100%的CPU资源?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54598146/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com