Sobes.tech
Junior — Middle

Care este diferența dintre funcțiile sleep și yield în gestionarea proceselor sau firelor?

sobes.tech AI

Răspuns de la AI

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

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

Пример:

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

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