Junior — Middle
Kokie yra pagrindiniai Object klasės metodai, naudojami srautams ir sinchronizacijai?
sobes.tech AI
Atsakymas iš AI
Java kalboje Object klasė pateikia keletą metodų, kurie dažnai naudojami dirbant su gijų ir sinchronizacija:
-
wait()— leidžia esamai gijai laukti, kol kita gija iškviesnotify()arbanotifyAll()tame pačiame objekte. Naudojama tam tikros būsenos laukimui organizuoti. -
notify()— pažadina vieną laukiančią giją šiame objekte. -
notifyAll()— pažadina visas laukiančias gijas šiame objekte.
Šie metodai turi būti iškviesti sinchronizuoto bloko ar metodo viduje, kitaip bus išmesta IllegalMonitorStateException.
Pavyzdys:
synchronized (sharedObject) {
while (!condition) {
sharedObject.wait();
}
// Veiksmai po sąlygos įvykdymo
}
// Kitoje gijėje
synchronized (sharedObject) {
// Būsenos keitimas
sharedObject.notify();
}