Sobes.tech
Junior — Middle

Quelle est la différence entre les fonctions sleep et yield dans la gestion des processus ou des threads?

sobes.tech IA

Réponse de l'IA

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

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

Пример:

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

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