我是c ++中的noob;我有个问题。我正在使用:
while(true) {
doSomething();
Sleep(time);
}
...在一个线程中,由于睡眠本身,我的程序占用了很高的CPU(它检查过,一定是问题所在)。有没有办法用别的东西?
答案 0 :(得分:2)
“Sleep()”不会消耗CPU - 除了调用开销。
可能的原因是你有其他线程在旋转。如果您使用的是OpenMP或Intel的Thread Building Blocks,可能会发生这种情况;在睡眠期间,这些系统使用的工作线程会不断地轮询工作,导致CPU使用率过高。
或者你有一个自己的工作线程,它正在旋转CPU等待工作交付。