Junior — Middle
Jak funguje mechanismus synchronized při použití s statickou funkcí v kontextu monitoru?
sobes.tech AI
Odpověď od AI
Když je metoda v Javě deklarována jako synchronized static, je monitor (zámek) získáván na úrovni třídy, nikoliv na úrovni instance objektu. To znamená, že při volání takové metody vlákno blokuje monitor třídy (objekt Class), a žádná jiná vlákna nem mohou současně vykonávat jiné statické synchronizované metody téže třídy.
Příklad:
public class Example {
public static synchronized void staticSyncMethod() {
// blokuje monitor třídy Example.class
// kritická sekce
}
}
Tímto způsobem synchronized na statické metodě zajišťuje vzájemné vyloučení na úrovni celé třídy, nikoliv konkrétního objektu. To je užitečné, když je třeba synchronizovat přístup ke statickým zdrojům nebo proměnným třídy.