Junior — Middle
Aké hlavné metódy triedy Object sa používajú na prácu s tokmi a synchronizáciou?
sobes.tech AI
Odpoveď od AI
V Jave, razred Object zagotavlja več metod, ki se pogosto uporabljajo pri delu s nitmi in sinhronizacijo:
-
wait()— povzroči, da trenutna nit čaka, dokler druga nit ne pokličenotify()alinotifyAll()na istem objektu. Uporablja se za organizacijo čakanja na določen pogoj. -
notify()— zbudi eno nit, ki čaka na tem objektu. -
notifyAll()— zbudi vse niti, ki čakajo na tem objektu.
Te metode je treba klicati znotraj sinhroniziranega bloka ali metode, sicer bo vržena izjema IllegalMonitorStateException.
Primer uporabe:
synchronized (sharedObject) {
while (!condition) {
sharedObject.wait();
}
// Dejavnosti po izpolnitvi pogoja
}
// V drugem niti
synchronized (sharedObject) {
// Sprememba stanja
sharedObject.notify();
}