Junior — Middle
Synchronized ilə işarələnmiş metod daxilində cari obyekt üzərində wait() metodunu çağırsaq, axın nə olacaq?
sobes.tech Süni İntellekt
AI-dan cavab
Əgər synchronized açar söz ilə işarələnmiş metod daxilində cari obyekt üzərində wait() metodu çağırılsa, iş axını:
- Obyektin monitorunu (kilidini) azad edəcək, bu da digər iş parçalarının sinxronlaşdırılmış blok və ya metod daxilinə daxil olmasına imkan verir.
waitvəziyyətinə keçəcək, digər bir iş parçacınotify()və yanotifyAll()çağırana qədər.
Beləliklə, wait() cari iş parçacığının icrasını müvəqqəti dayandırır və monitoru azad edir, bu da qarşılıqlı kilidlənmələrin qarşısını almağa və iş parçacqları arasında əməkdaşlığı həyata keçirməyə kömək edir.
Nümunə:
synchronized(this) {
while (!şərt) {
wait(); // monitoru azad edir və bildiriş gözləyir
}
// oyandırıldıqdan sonra icra olunan kod
}