Sobes.tech
Back to questions
Junior — Middle
63

Как реализовать синхронизацию в статическом методе с помощью synchronized?

Companies where asked
DCloud

Answer from AI

sobes.tech AI

Для синхронизации статического метода с помощью ключевого слова synchronized используется блокировка на уровне класса, а не экземпляра. Это значит, что монитором выступает объект Class соответствующего класса.

Пример синхронизации статического метода:

public class MyClass {
    public static synchronized void staticMethod() {
        // код, который будет выполняться только одним потоком одновременно
    }
}

Аналогично можно использовать блок synchronized внутри метода:

public class MyClass {
    public static void staticMethod() {
        synchronized (MyClass.class) {
            // синхронизированный код
        }
    }
}

Таким образом, при вызове статического synchronized метода или при синхронизации по классу, гарантируется, что одновременно только один поток может выполнять этот код для данного класса.