Sobes.tech
Middle

Grand Central Dispatch (GCD)-də hansı növ növbələr mövcuddur?

sobes.tech Süni İntellekt

AI-dan cavab

GCD-də dörd əsas növ növbə istifadə olunur:

  1. Əsas növbə (Main Queue):

    • Seriyalı növbə.
    • Tətbiqin əsas axınında tapşırıqları yerinə yetirmək üçün istifadə olunur (UI yeniləmələri, hadisələrin idarə olunması).
    • Hər tətbiq üçün bir dənə mövcuddur.
  2. Qlobal eyni vaxtlı növbələr (Global Concurrent Queues):

    • Eyni vaxtlı növbələr.
    • Sistem tərəfindən təmin edilir.
    • Müxtəlif xidmət keyfiyyətləri səviyyələrinə (Quality of Service - QoS) malikdirlər.
    • Eyni zamanda bir neçə tapşırıq yerinə yetirə bilərlər.
  3. Xüsusi seriyalı növbələr (Custom Serial Queues):

    • Geliştirici tərəfindən yaradılan seriyalı növbələr.
    • Tapşırıqları ardıcıl şəkildə, biri bitdikdən sonra digəri başlayır.
    • Resurslara girişin idarə olunması üçün idealdır (sinxronizasiya).
  4. Xüsusi eyni vaxtlı növbələr (Custom Concurrent Queues):

    • Geliştirici tərəfindən yaradılan eyni vaxtlı növbələr.
    • Eyni zamanda bir neçə tapşırıq yerinə yetirə bilərlər.
    • Tapşırıqların yerinə yetirilməsini daha yaxşı idarə etməyə imkan verir, qlobal eyni vaxtlı növbələrə nisbətən.

Növbələrin yaradılması nümunələri:

// Əsas növbə
let mainQueue = DispatchQueue.main

// Yüksək prioritetli qlobal eyni vaxtlı növbə
let globalHighPriorityQueue = DispatchQueue.global(qos: .userInitiated)

// Xüsusi seriyalı növbə
let customSerialQueue = DispatchQueue(label: "com.myapp.serialqueue")

// Xüsusi eyni vaxtlı növbə
let customConcurrentQueue = DispatchQueue(label: "com.myapp.concurrentqueue", attributes: .concurrent)

QoS prioritetləri qlobal növbələr üçün:

QoS Prioriteti Təsviri
.userInteractive İstifadəçi interfeysi ilə əlaqəli tapşırıqlar (kliklərə cavab).
.userInitiated İstifadəçi tərəfindən başlanmış tapşırıqlar (məzmunun yüklənməsi üçün).
.default Standart prioritet, .userInitiated.utility arasında.
.utility Uzunmüddətli fon tapşırıqları (faylların yüklənməsi).
.background Aşağı prioritetli tapşırıqlar, istifadəçidən asılı deyil.
.unspecified Sistem prioriteti müəyyən edir.