Junior — Middle
Kako funkcioniše mehanizam synchronized kada se koristi sa statičkom funkcijom u kontekstu monitora?
sobes.tech АИ
Одговор од АИ
Kada je metoda deklarisana kao synchronized static u Javi, monitor (zaključavanje) se preuzima na nivou klase, a ne na nivou objekta instance. To znači da, prilikom poziva takve metode, nit blokira monitor klase (objekat Class), i nijedna druga nit ne može istovremeno izvršavati druge statičke synchronized metode te iste klase.
Primer:
public class Example {
public static synchronized void staticSyncMethod() {
// blokira monitor klase Example.class
// kritična sekcija
}
}
Dakle, synchronized na statičkoj metodi obezbeđuje međusobno isključivanje na nivou cele klase, a ne određenog objekta. Ovo je korisno kada je potrebno sinhronizovati pristup statičkim resursima ili promenljivima klase.