Sobes.tech
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če notify() ali notifyAll() 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();
}