Недавно я писал программу на C ++, которая пингует три разных веб-сайта, а затем, в зависимости от того, пройден ли он или нет, будет ждать 5 минут или 30 секунд, прежде чем он попытается снова.
В настоящее время я использую ctimeбиблиотека и следующая функция для обработки моего ожидания.Однако, по мнению моего измерителя ЦП, это неприемлемое решение.
void wait (int seconds)
{
clock_t endwait;
endwait = clock () + seconds * CLOCKS_PER_SEC;
while (clock () < endwait) {}
}
Причина, по которой это решение неприемлемо, заключается в том, что, согласно моему измерителю ЦП, программа ожидает от 48% до 50% от моего ЦП при ожидании,У меня процессор Athlon 64 x2 1,2 ГГц.Моя скромная 130-строчная программа не может даже приблизиться к 50%.
Как лучше написать функцию ожидания, чтобы она использовала только минимальные ресурсы?