Junior — Middle
Aký je rozdiel medzi funkciami sleep a yield pri správe procesov alebo vlákien?
sobes.tech AI
Odpoveď od AI
Функция sleep приостанавливает выполнение текущего потока на заданное время, освобождая процессор, но поток остаётся в состоянии ожидания и не готов к выполнению, пока не истечёт время сна.
Функция yield добровольно отдаёт процессор другим потокам, которые готовы к выполнению, но при этом текущий поток остаётся в состоянии готовности и может быть немедленно возобновлён планировщиком, если других потоков нет или они не готовы.
Пример:
Thread.sleep(1000); // поток "спит" 1 секунду
Thread.yield(); // поток предлагает планировщику переключиться на другой поток
Таким образом, sleep используется для паузы, а yield — для добровольной уступки процессора без паузы.