Какие основные методы класса Object используются для работы с потоками и синхронизацией?

В Java класс Object предоставляет несколько методов, которые часто используются при работе с потоками и синхронизацией:

Короткий ответ

Что ответить на собеседовании

В Java класс Object предоставляет несколько методов, которые часто используются при работе с потоками и синхронизацией:

Подробный разбор

Ответ с пояснениями

В Java класс Object предоставляет несколько методов, которые часто используются при работе с потоками и синхронизацией:

  • wait() — заставляет текущий поток ждать, пока другой поток не вызовет notify() или notifyAll() на том же объекте. Используется для организации ожидания определённого состояния.
  • notify() — пробуждает один поток, который ожидает на данном объекте.
  • notifyAll() — пробуждает все потоки, ожидающие на данном объекте.

Эти методы должны вызываться внутри синхронизированного блока или метода, иначе будет выброшено IllegalMonitorStateException.

Пример:

synchronized (sharedObject) {
    while (!condition) {
        sharedObject.wait();
    }
    // Действия после наступления условия
}

// В другом потоке
synchronized (sharedObject) {
    // Изменение состояния
    sharedObject.notify();
}

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее