IT-словарь › Программирование › Активное ожидание (busy waiting)

Активное ожидание (busy waiting)

Программирование Svenska → Обновлено: 2026-11-03

Ожидание, при котором процессор крутится в цикле, не делая ничего полезного, пока не выполнится условие или не пройдёт нужное время.

Самая древняя задержка в прошивках — for (i = 0; i < 100000; i++);. У неё два классических недостатка: оптимизатор попросту выбросит цикл, если счётчик не volatile, а сама задержка перестаёт быть верной, как только кто-нибудь меняет тактовую частоту или флаги компилятора. Linux калибрует свой цикл задержки при загрузке — это число и выводится как BogoMIPS.

Для коротких пауз, нескольких микросекунд внутри драйвера, активное ожидание нередко оказывается правильным выбором: засыпание и пробуждение обходятся дороже самой паузы. Для всего более долгого лучше таймер или вызов RTOS, дающий поработать другим задачам. Спинлок — это то же активное ожидание, где условием служит блокировка.

← Назад к словарю