Sobes.tech
Junior — Middle

Qanday qilib oqim ob'ekt ustidan nazoratni qo'lga kiritadi va ko'p oqimli muhitda uning ushlanishi qanday amalga oshadi?

sobes.tech AI

AIdan javob

Çox ipli mühitdə, bir iplik 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 iplik obyektə giriş istəyərkən, həmin obyektin monitorunu (lock) ələ keçirməyə çalışır. Əgər monitor boşdursa, iplik nəzarəti əldə edir və obyekt üzərində əməliyyatlar edə bilər. Əgər monitor başqa bir iplik tərəfindən istifadə olunursa, cari iplik 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, incrementgetCount metodları sinxronlaşdırılıb, bu da yalnız bir ipliyin 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.