Junior — Middle
83
Как реализовать синхронизацию в статическом методе с помощью synchronized?
Компании, где спрашивали
DCloud
Ответ от нейросети
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 метода или при синхронизации по классу, гарантируется, что одновременно только один поток может выполнять этот код для данного класса.