c ++睡眠占用了太多CPU

时间:2013-09-21 00:33:14

标签: c++ c

我是c ++中的noob;我有个问题。我正在使用:

while(true) { 
      doSomething(); 
      Sleep(time);
} 

...在一个线程中,由于睡眠本身,我的程序占用了很高的CPU(它检查过,一定是问题所在)。有没有办法用别的东西?

1 个答案:

答案 0 :(得分:2)

“Sleep()”不会消耗CPU - 除了调用开销。

可能的原因是你有其他线程在旋转。如果您使用的是OpenMP或Intel的Thread Building Blocks,可能会发生这种情况;在睡眠期间,这些系统使用的工作线程会不断地轮询工作,导致CPU使用率过高。

或者你有一个自己的工作线程,它正在旋转CPU等待工作交付。