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

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

wait() и sleep() приостанавливают выполнение потока, но работают по-разному:

  1. Монитор:
    • wait() освобождает монитор (требует synchronized блока).
    • sleep() не освобождает монитор.
  1. Пробуждение:

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

    • wait() — метод Object.
    • sleep() — статический метод Thread.

Пример:

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

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

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

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

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