Junior — Middle
Ako sa vykonáva blokovanie pri volaní statickej metódy deklarovanej s kľúčovým slovom synchronized?
sobes.tech AI
Odpoveď od AI
Ak je statická metóda deklarovaná s kľúčovým slovom synchronized, blokovanie sa vykonáva na objekte triedy (Class object), nie na inštancii.
To znamená, že pri volaní takejto metódy, vlákno získa monitor (lock) triedy, ku ktorej patrí metóda, a iné vlákna, ktoré sa pokúšajú zavolať akúkoľvek inú synchronizovanú statickú metódu tej istej triedy, budú čakať na uvoľnenie zámku.
Príklad:
public class MyClass {
public static synchronized void staticSyncMethod() {
// kód metódy
}
}
Tu je monitorom objekt MyClass.class.