Назад к вопросам
Т-Банк
Junior — Middle
76
Как работает механизм synchronized при использовании его с статической функцией в контексте монитора?
Компании, где спрашивали
Ответ от нейросети
sobes.tech AI
Когда метод объявлен как synchronized static в Java, монитор (lock) берётся на уровне класса, а не на уровне экземпляра объекта. Это значит, что при вызове такого метода поток блокирует монитор класса (Class object), и никакие другие потоки не смогут одновременно выполнить другие статические synchronized методы этого же класса.
Пример:
public class Example {
public static synchronized void staticSyncMethod() {
// блокируется монитор класса Example.class
// критическая секция
}
}
Таким образом, synchronized на статическом методе обеспечивает взаимное исключение на уровне всего класса, а не конкретного объекта. Это полезно, когда нужно синхронизировать доступ к статическим ресурсам или переменным класса.