Sobes.tech
Back to questions
Junior — Middle
61

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

Companies where asked
СБЕРСБЕР

Answer from AI

sobes.tech AI

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

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

  • notify() — пробуждает один поток, который ожидает на данном объекте.

  • notifyAll() — пробуждает все потоки, ожидающие на данном объекте.

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

Пример использования:

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

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