Junior — Middle
Na akom objekte sa vykonáva mechanizmus blokovania pri použití kľúčového slova synchronized?
sobes.tech AI
Odpoveď od AI
V Jave, keď používate kľúčové slovo synchronized, mechanizmus blokovania závisí od kontextu:
- Ak sa
synchronizedaplikuje na nestatickú metódu, blokovanie prebieha na objekte (this), na ktorom je metóda volaná. - Ak sa
synchronizedaplikuje na statickú metódu, blokovanie prebieha na objekte triedy (Class), teda na samotnej triede. - Ak sa používa blok
synchronized(obj), blokovanie prebieha na objekteobj.
Príklad:
public class Example {
public synchronized void instanceMethod() {
// blokovanie na this
}
public static synchronized void staticMethod() {
// blokovanie na Example.class
}
public void blockMethod() {
Object lock = new Object();
synchronized(lock) {
// blokovanie na lock
}
}
}