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