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