Многопоточность middle
Как работает synchronized?
Ответ
Захватывает монитор объекта. На методе — монитор this (на static — Class-объект). На блоке — указанного объекта. Только один поток одновременно.
Разбор: synchronized захватывает монитор конкретного объекта (для static-метода — Class-объект, а не this), и одновременно им владеет только один поток. Глобального монитора JVM нет — блокировки на разных объектах независимы; и synchronized — это именно взаимное исключение, а не просто упорядочивание видимости.
Хочешь так же по своей компании — с вопросами по грейдам и задачами? Закажи гайд или забери свежее в Telegram.