Sobes.tech
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škvies notify() arba notifyAll() 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();
}