Sobes.tech
Junior — Middle

Jaké hlavní metody třídy Object se používají pro práci s proudy a synchronizací?

sobes.tech AI

Odpověď od AI

V jazyce Java poskytuje třída Object několik metod, které se často používají při práci s vlákny a synchronizací:

  • wait() — způsobí, že aktuální vlákno bude čekat, dokud jiné vlákno ne zavolá notify() nebo notifyAll() na stejném objektu. Používá se k organizaci čekání na určitý stav.

  • notify() — probudí jedno vlákno, které čeká na tomto objektu.

  • notifyAll() — probudí všechna vlákna čekající na tomto objektu.

Tyto metody by měly být volány uvnitř synchronizovaného bloku nebo metody, jinak dojde k vyhození výjimky IllegalMonitorStateException.

Příklad použití:

synchronized (sharedObject) {
    while (!condition) {
        sharedObject.wait();
    }
    // Akce po splnění podmínky
}

// V jiném vlákně
synchronized (sharedObject) {
    // Změna stavu
    sharedObject.notify();
}