Junior — Middle
Агар дар дохили як усули, ки бо synchronized нишондод шудааст, усули wait() дар объекти ҳозир даъват карда шавад, чӣ мешавад?
sobes.tech AI
Ҷавоб аз AI
Агар synchronized ачкыч сўзи билан белгиланган метод ичида ҳозирги объектда wait() методу чақирилса, йўлланма:
- Объектнинг мониторини (локдаун) эркинлаштиради, бу бошқа йўлланмаларнинг синхронлаштирилган блок ёки методга киришини таъминлайди.
waitҳолатига ўтади, бошқа йўлланмаnotify()ёкиnotifyAll()ни шу объектда чақирганча.
Шу тариқа, wait() ҳозирги йўлланманинг ижросини вақтинча тўхтатади ва мониторни эркинлаштиради, бу ўзаро блокловларни олди олишга ва йўлланмалар ўртасида ҳамкорлик қилишга ёрдам беради.
Масалан:
synchronized(this) {
while (!шарт) {
wait(); // мониторни эркинлаштиради ва хабар кутмоқда
}
// уйғонгандан кейин бажариладиган код
}