Sobes.tech
Junior — Middle

Кои са основните методи на класа Object, използвани за работа с потоци и синхронизация?

sobes.tech AI

Отговор от AI

В Java класът Object предоставя няколко метода, които често се използват при работа с нишки и синхронизация:

  • wait() — кара текущата нишка да чака, докато друга нишка не извика notify() или notifyAll() върху същия обект. Използва се за организиране на очакване на определено състояние.

  • notify() — събужда една нишка, която чака на този обект.

  • notifyAll() — събужда всички нишки, чакащи на този обект.

Тези методи трябва да се извикват вътре в синхронизирана блок или метод, иначе ще бъде хвърлено изключение IllegalMonitorStateException.

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

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

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