死循环为什么占用cpu高

CPU占用是怎么算出来的? 只要开机,CPU就不会休息,总是会在某个进程上运行这个进程就是current。
如果current是0号进程(idle进程),那么就算CPU idle(因为在这个CPU上没有别的进程是处于RUNNING状态的,0号进程才可能被调度运行)。否则,就算CPU被占用。

可见,CPU要idle只有一种情况,那就是这个CPU对应的运行队列里面没有进程(即没有处于RUNNING状态的进程)。
而死循环的进程总是处于RUNNING状态的,不管这个进程是否正在执行、是否要被抢占,没有人会改变它的执行状态,它总是RUNNING。 所以CPU idle当然就会很低。

按我的理解,这种情况下CPU占用应该总是100%,但是由于一些统计方面的原因,CPU占用可能偶尔会低于100%。

摘抄于:

https://blog.csdn.net/gx19862005/article/details/48622767

猜你喜欢

转载自www.cnblogs.com/yangxinrui/p/12626713.html