Назад к вопросам
Junior — Middle
70
Какое отличие между функциями sleep и yield в управлении процессами или потоками?
Ответ от нейросети
sobes.tech AI
Функция sleep приостанавливает выполнение текущего потока на заданное время, освобождая процессор, но поток остаётся в состоянии ожидания и не готов к выполнению, пока не истечёт время сна.
Функция yield добровольно отдаёт процессор другим потокам, которые готовы к выполнению, но при этом текущий поток остаётся в состоянии готовности и может быть немедленно возобновлён планировщиком, если других потоков нет или они не готовы.
Пример:
Thread.sleep(1000); // поток "спит" 1 секунду
Thread.yield(); // поток предлагает планировщику переключиться на другой поток
Таким образом, sleep используется для паузы, а yield — для добровольной уступки процессора без паузы.