在应用程序某个线程中,如果这样写:
while(TRUE) {}
在代码不被编译器优化的情况下,可以看到CPU被100%的占用,但如果修改为:
while(TRUE) { Sleep(10); }
则CPU占用率就非常低。
在系统内部如何实现Sleep函数,使得它即不占用CPU又能在指定的时间返回呢?

解决方案 »

  1.   

    关注.
    不光是while(TRUE) {}
    如果你搜索目录,目录很多也会有这种情况,会像死机一样,有时候还真的死掉了.
    操作系统中的搜索不知道是怎么实现的.对了上面while(TRUE) {}
    如果优化的话cpu 还会100%吗?
      

  2.   

    我现在搞单片机软件,对这个有点看法。说出来和大家讨论讨论
    Sleep()函数内部可能设置一个定时器,而在定时中断之前的计数工作(CPU脉冲频率)是由硬件完成的,这不需要CPU参与,所以就腾出很多时间来干别的个人看法而已