Junior — Middle
Kokio objekto yra vykdomas užrakinimo mechanizmas naudojant synchronized raktažodį?
sobes.tech AI
Atsakymas iš AI
Java kalbant apie synchronized raktažodį, blokavimo mechanizmas priklauso nuo konteksto:
- Jei
synchronizedtaikomas nestatinės metodo, blokavimas vyksta ant objekto (this), iš kurio kviečiama metodas. - Jei
synchronizedtaikomas statinės metodo, blokavimas vyksta ant klasės objekto (Class), tai yra pačios klasės. - Jei naudojamas
synchronized(obj)blokas, blokavimas vyksta ant objektoobj.
Pavyzdys:
public class Example {
public synchronized void instanceMethod() {
// blokavimas ant this
}
public static synchronized void staticMethod() {
// blokavimas ant Example.class
}
public void blockMethod() {
Object lock = new Object();
synchronized(lock) {
// blokavimas ant lock
}
}
}