Sobes.tech
Junior — Middle

Çox ipli proqramlaşdırmada hansı bloklama növlərinin mövcud olduğunu və onların necə işlədiyini izah edə bilərsinizmi?

sobes.tech Süni İntellekt

AI-dan cavab

Çox iş parçacığı proqramlaşdırmasında ümumi resurslara girişin sinxronlaşdırılmasına kömək edən müxtəlif bloklama növləri mövcuddur:

  • Mutex (Mutual Exclusion) — resursa eksklüziv giriş təmin edir. Yalnız bir iş parçacığı eyni zamanda mutex-i ələ keçirə bilər.
  • Yenidən istifadə edilə bilən mutex — eyni iş parçacığının çoxsaylı dəfə bloklamasını təmin edir, öz-özünü bloklamadan.
  • Oxuma-Yazma Bloklaması (Read-Write Lock) — bir neçə iş parçacığı resursu eyni vaxtda oxuya bilər, lakin yazma yalnız eksklüzivdir.
  • Semafor — eyni zamanda resursa giriş edə biləcək iş parçacığı sayını məhdudlaşdırır.
  • Spinlock (aktiv gözləmə) — iş parçacığı dövründə bloklamanın mövcud olub-olmadığını yoxlayır, gözləmə vəziyyətinə keçmədən.

Swift-də mutex istifadəsi nümunəsi:

let lock = NSLock()

func criticalSection() {
    lock.lock()
    // Kritik bölmə
    lock.unlock()
}

Bloklama növünün seçimi vəzifədən və performans və təhlükəsizlik tələblərindən asılıdır.