Sobes.tech
Junior — Middle

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

sobes.tech AI

Отговор от AI

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

Това означава, че при извикване на такъв метод, нишката (thread) придобива монитора (lock) на класа, към който принадлежи методът, и други нишки, които се опитват да извикат всякакъв друг синхронизирани статичен метод на същия клас, ще чакат освобождаването на блокировката.

Пример:

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

Тук мониторът е обектът MyClass.class.