Ответ
Статический synchronized метод синхронизируется на объекте класса (Class), а не на экземпляре. Это значит, что блокировка применяется ко всему классу, и только один поток может выполнять любой статический синхронизированный метод этого класса одновременно.
Пример:
class MyClass {
public static synchronized void staticMethod() {
// Критическая секция
}
}
Эквивалентно:
class MyClass {
public static void staticMethod() {
synchronized (MyClass.class) {
// Критическая секция
}
}
}