Sobes.tech
Назад к вопросам
Junior — Middle
70

Какое отличие между функциями sleep и yield в управлении процессами или потоками?

Ответ от нейросети

sobes.tech AI

Функция sleep приостанавливает выполнение текущего потока на заданное время, освобождая процессор, но поток остаётся в состоянии ожидания и не готов к выполнению, пока не истечёт время сна.

Функция yield добровольно отдаёт процессор другим потокам, которые готовы к выполнению, но при этом текущий поток остаётся в состоянии готовности и может быть немедленно возобновлён планировщиком, если других потоков нет или они не готовы.

Пример:

Thread.sleep(1000); // поток "спит" 1 секунду
Thread.yield();     // поток предлагает планировщику переключиться на другой поток

Таким образом, sleep используется для паузы, а yield — для добровольной уступки процессора без паузы.