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 метода или при синхронизации по классу, гарантируется, что одновременно только один поток может выполнять этот код для данного класса.