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:
-
Ə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.
-
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.
-
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).
-
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 və .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. |