CPU 占用率问题
各位好汉,为什么程序里的死循环,会占用那么多的CPU资源(甚至达到100%)?而我在循环里面加上一个SLEEP(哪怕是睡1ms),CPU占用回大大减小(甚至接近0%)。请各位高手帮忙分析一下,多谢!
[解决办法]
死循环会一直消耗空闲CPU,只要你有空余CPU时间,都会被使用。
Sleep,要看系统如何实现,如果使用定时器实现,则CPU使用率很低,比如你sleep 1ms,而CPU运算是纳秒级的,Sleep这么长时间才使用Cpu跑几步,基本上是可以认为不占用CPU的。
[解决办法]
嗯,详细的解释你需要看MSDN对Sleep()的解释。
Sleep会放弃系统分配的剩余的时间片,OS就能更好的服务其他的进程和线程了。
[解决办法]
sleep 告诉操作系统 下面的时间我不要cpu 了
[解决办法]
SLEEP(哪怕是睡1ms)。就这1ms的时间,cpu会重复执行多少次系统调用啊。
[解决办法]
《深入解析windows操作系统》
《Windows核心编程》