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

В чем разница между методами sleep() и wait()

sleep() и wait() используются для управления потоками, но имеют ключевые различия:

  1. Класс и синхронизация
    • sleep() — метод Thread, не требует synchronized блока.
    • wait() — метод Object, требует synchronized блока/метода.
  1. Освобождение монитора

    • sleep() не освобождает монитор.
    • wait() освобождает монитор, позволяя другим потокам войти в synchronized блок.
  2. Пробуждение

    • sleep() завершается после указанного времени или прерывания.
    • wait() требует вызова notify()/notifyAll() или прерывания.

Пример:

java
synchronized (lock) {
    lock.wait(1000);  // Освобождает монитор, ждет notify() или таймаут
}

Thread.sleep(1000);   // Просто приостанавливает поток
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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