Junior — Middle
Was ist der Unterschied zwischen den Funktionen sleep und yield bei der Steuerung von Prozessen oder Threads?
sobes.tech KI
Antwort von AI
Функция sleep приостанавливает выполнение текущего потока на заданное время, освобождая процессор, но поток остаётся в состоянии ожидания и не готов к выполнению, пока не истечёт время сна.
Функция yield добровольно отдаёт процессор другим потокам, которые готовы к выполнению, но при этом текущий поток остаётся в состоянии готовности и может быть немедленно возобновлён планировщиком, если других потоков нет или они не готовы.
Пример:
Thread.sleep(1000); // поток "спит" 1 секунду
Thread.yield(); // поток предлагает планировщику переключиться на другой поток
Таким образом, sleep используется для паузы, а yield — для добровольной уступки процессора без паузы.