Axın obyekt üzərində nəzarəti necə əldə edir və çox iş parçacığı mühitində onun ələ keçirilməsi necə baş verir?
sobes.tech Süni İntellekt
AI-dan cavab
Çox iş parçacıklı mühitdə, bir iş parçacığı resursa eksklüziv giriş təmin edən sinxronizasiya mexanizmləri vasitəsilə obyekt üzərində nəzarət əldə edir. Androidda (və ümumiyyətlə Java-da) synchronized, ReentrantLock və digər kimi açar sözlər və siniflər istifadə olunur.
Bir iş parçacığı obyektə giriş istəyərkən, həmin obyektin monitorunu (lock) ələ keçirməyə çalışır. Əgər monitor boşdursa, iş parçacığı nəzarəti əldə edir və obyekt üzərində əməliyyatlar edə bilər. Əgər monitor başqa bir iş parçacığı tərəfindən istifadə olunursa, cari iş parçacığı bloklanır və sərbəst buraxılmasını gözləyir.
Synchronized istifadə edilən nümunə:
public class Counter {
private int count = 0;
public synchronized void increment() {
count++;
}
public synchronized int getCount() {
return count;
}
}
Burada, increment və getCount metodları sinxronlaşdırılıb, bu da yalnız bir iş parçacığının eyni zamanda bu metodları icra edə bilməsini təmin edir və yarış şəraitlərinin qarşısını alır.
Beləliklə, obyektin ələ keçirilməsi, həmin obyekt üzərində monitor (lock) kilidinin alınması deməkdir və bu, onun vəziyyətinə təhlükəsiz giriş təmin edir.