Многопоточность middle
wait / notify / notifyAll — правила использования?
Ответ
Вызывать только внутри synchronized на том же объекте. wait() освобождает монитор и засыпает. notify будит один поток, notifyAll — все.
Разбор: Эти методы требуют владения монитором именно того объекта, на котором synchronized; иначе IllegalMonitorStateException. wait() освобождает монитор и засыпает, notify будит один поток, notifyAll — все. Дистракторы неверны: нельзя вызывать вне synchronized или на чужом объекте, порядок пробуждения не гарантирован (нет очереди FIFO), а notifyAll не отдаёт монитор всем сразу — проснувшиеся потоки всё равно по очереди его перезахватывают.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.