Sobes.tech
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 на статическом методе обеспечивает взаимное исключение на уровне всего класса, а не конкретного объекта. Это полезно, когда нужно синхронизировать доступ к статическим ресурсам или переменным класса.