Встречается на собеседованиях • сегодня
В чем разница между sleep, wait и yield
sleep() приостанавливает выполнение текущего потока на указанное время, не освобождая монитор. Используется для паузы без синхронизации.
java
Thread.sleep(1000); // поток спит 1 секундуwait() освобождает монитор и переводит поток в ожидание, пока другой поток не вызовет notify()/notifyAll(). Должен вызываться внутри synchronized блока.
java
synchronized (lock) {
lock.wait(); // освобождает lock и ждет
}yield() предлагает планировщику потоков переключиться на другой поток, но не гарантирует этого. Используется редко, для "вежливой" уступки CPU.
java
Thread.yield(); // "может быть" переключит потокКлючевое отличие: sleep() не освобождает монитор, wait() освобождает, а yield() просто намекает на возможность переключения.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы