В Java класс Object предоставляет несколько методов, которые часто используются при работе с потоками и синхронизацией:
Какие основные методы класса Object используются для работы с потоками и синхронизацией?
В Java класс Object предоставляет несколько методов, которые часто используются при работе с потоками и синхронизацией:
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
В Java класс Object предоставляет несколько методов, которые часто используются при работе с потоками и синхронизацией:
wait()— заставляет текущий поток ждать, пока другой поток не вызоветnotify()илиnotifyAll()на том же объекте. Используется для организации ожидания определённого состояния.notify()— пробуждает один поток, который ожидает на данном объекте.notifyAll()— пробуждает все потоки, ожидающие на данном объекте.
Эти методы должны вызываться внутри синхронизированного блока или метода, иначе будет выброшено IllegalMonitorStateException.
Пример:
synchronized (sharedObject) {
while (!condition) {
sharedObject.wait();
}
// Действия после наступления условия
}
// В другом потоке
synchronized (sharedObject) {
// Изменение состояния
sharedObject.notify();
}