Встречается на собеседованиях • сегодня

В чем разница между sleep и yield

sleep() приостанавливает выполнение текущего потока на указанное время, освобождая процессор для других потоков. Поток переходит в состояние TIMED_WAITING.

yield() — это подсказка планировщику, что текущий поток готов уступить процессор, но не гарантирует, что это произойдет. Поток остается в состоянии RUNNABLE.

Пример:

java
// sleep
Thread.sleep(1000); // поток спит 1 секунду  

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

Ключевые отличия:

  • sleep() — точная пауза, yield() — нет гарантии переключения.
  • sleep() переводит поток в TIMED_WAITING, yield() оставляет в RUNNABLE.
  • sleep() требует обработки InterruptedException, yield() — нет.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы