Junior — Middle
Как се осъществява блокирането при извикване на статичен метод, обявен с ключовата дума synchronized?
sobes.tech AI
Отговор от AI
Ако статичен метод е обявен с ключовата дума synchronized, блокирането се случва върху обекта на класа (Class object), а не върху екземпляр.
Това означава, че при извикване на такъв метод, нишката (thread) придобива монитора (lock) на класа, към който принадлежи методът, и други нишки, които се опитват да извикат всякакъв друг синхронизирани статичен метод на същия клас, ще чакат освобождаването на блокировката.
Пример:
public class MyClass {
public static synchronized void staticSyncMethod() {
// код на метода
}
}
Тук мониторът е обектът MyClass.class.