Sobes.tech
Назад к вопросам
Junior — Middle
62

Каким образом осуществляется блокировка при вызове статического метода, если он объявлен с ключевым словом synchronized?

Компании, где спрашивали
ВТБВТБ

Ответ от нейросети

sobes.tech AI

Если статический метод объявлен с ключевым словом synchronized, то блокировка происходит на объекте класса (Class object), а не на экземпляре.

Это значит, что при вызове такого метода поток захватывает монитор (lock) класса, к которому принадлежит метод, и другие потоки, пытающиеся вызвать любой другой synchronized статический метод этого же класса, будут ждать освобождения блокировки.

Пример:

public class MyClass {
    public static synchronized void staticSyncMethod() {
        // код метода
    }
}

Здесь монитором выступает объект MyClass.class.