Как работают wait(), notify(), notifyAll()?

Middle
357 просмотров
AFK Offer AI

Это методы Object для межпоточной коммуникации. Вызываются только внутри synchronized-блока на том же объекте. wait() — поток отпускает монитор и засыпает. notify() — будит один случайный ожидающий поток. notifyAll() — будит все. Всегда используй wait() в цикле while (проверяй условие после пробуждения — spurious wakeup). Предпочитай notifyAll() — notify() может разбудить не тот поток. В современной Java Lock + Condition заменяют wait/notify с большей гибкостью.

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

Напишите глобальный обработчик исключений в Spring