2013-09-21 5 views
0

Я ноб в C++; У меня проблема. Я использую:C++ sleep слишком много использования ЦП

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

... в потоке и моя программа занимает высокое CPU из-за самого сна (это проверено, и оно должно быть проблемой). Есть ли способ использовать что-то еще?

+4

Как вы проверили, что это сон, а не «doSomething()»? – Mysticial

+0

Потому что высокое использование даже когда нить спала. время в настоящее время установлено на 10 минут – user2618929

+0

Какая платформа это и какое значение вы использовали для 'time'? –

ответ

2

«Сон()» не потребляет процессор - кроме служебных расходов.

Вероятная причина в том, что у вас есть другие нитки, вращающиеся. Это может произойти, если вы используете что-то вроде OpenMP или Intel Thread Building Blocks; во время Сна рабочие потоки, используемые этими системами, постоянно проводят опрос для выполнения работы, что приводит к высокому использованию ЦП.

Или у вас есть собственный рабочий поток, который вращает процессор, ожидая, что работа будет доставлена.

Смежные вопросы