Junior — Middle
Care sunt metodele principale ale clasei Object utilizate pentru lucrul cu fluxurile și sincronizarea?
sobes.tech AI
Răspuns de la AI
În Java, clasa Object oferă mai multe metode care sunt frecvent utilizate atunci când lucrați cu fire și sincronizare:
-
wait()— face ca firul curent să aștepte până când alt fir apeleazănotify()saunotifyAll()pe același obiect. Este folosit pentru a organiza așteptarea unei anumite stări. -
notify()— trezește un singur fir care așteaptă pe acel obiect. -
notifyAll()— trezește toate firele care așteaptă pe acel obiect.
Aceste metode trebuie apelate în interiorul unui bloc sau metodă sincronizată, altfel va fi aruncată o excepție IllegalMonitorStateException.
Exemplu de utilizare:
synchronized (sharedObject) {
while (!condition) {
sharedObject.wait();
}
// Acțiuni după îndeplinirea condiției
}
// În alt fir
synchronized (sharedObject) {
// Schimbarea stării
sharedObject.notify();
}