Junior — Middle
Kura elementu gadījumā droši var izsaukt metodi wait(), atrodoties sinhronizētā kontekstā?
sobes.tech AI
Atbilde no AI
Java valodā wait() metode var izsaukt tikai uz objektiem, kuru monitors (monitora aizslēdzis) ir iegūts no pašreizējās pavediena, tas ir, iekšā sinhronizētā blokā vai sinhronizētā metodē uz šo objektu. Tas nozīmē, ka droši izsaukt wait() tikai uz objektiem, uz kuriem jūs turat monitoru, piemēram:
synchronized (obj) {
obj.wait(); // droši
}
Ja wait() izsauc ārpus sinhronizēta konteksta uz šo objektu, tiks iemesta IllegalMonitorStateException. Tādēļ wait() var izsaukt tikai uz objektiem, uz kuriem pašreizējā pavediena tur monitoru (tas ir, iekšā synchronized(obj) vai sinhronizētā metodē uz šo objektu).