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()nebonotifyAll()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();
}