Sobes.tech
Junior — Middle

Kāda ir atšķirība starp funkcijām sleep un yield procesu vai pavedienu pārvaldībā?

sobes.tech AI

Atbilde no AI

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

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

Пример:

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

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