Junior — Middle
GCD-də hansı növ növbələr mövcuddur və onlar davranış və istifadə baxımından necə fərqlənir?
sobes.tech Süni İntellekt
AI-dan cavab
GCD-də aşağıdakı növ növbələr mövcuddur:
-
Serial Növbələr (Serial Queues)
- Tapşırıqları ardıcıl olaraq, bir-bir icra edir.
- Resurslara girişin sinxronlaşdırılması və yarış şəraitlərinin qarşısını almaq üçün istifadə olunur.
- Özəl serial növbələr yaradıla bilər.
-
Eyni vaxtda növbələr (Concurrent Queues)
- Bir neçə tapşırığı eyni zamanda icra edir.
- Müxtəlif prioritetlərə (QoS) malik qlobal eyni vaxtda növbələr mövcuddur.
- Çox prosessorlu sistemlərdən səmərəli istifadə etməyə imkan verir.
-
Əsas növbə (Main Queue)
- Tətbiqin əsas axını ilə əlaqəli serial növbə.
- UI-nin yenilənməsi və digər əməliyyatlar üçün istifadə olunur, bunlar əsas axında yerinə yetirilməlidir.
Fərqlər və istifadə:
- Serial növbələr icra sırasını təmin edir və ümumi resurslara eyni vaxtda girişin qarşısını alır.
- Eyni vaxtda növbələr tapşırıqların eyni zamanda yerinə yetirilməsi ilə performansı artırır.
- iOS-də UI ilə işləmək üçün əsas növbə məcburidir.
Serial növbənin yaradılması və istifadəsi nümunəsi:
let serialQueue = DispatchQueue(label: "com.example.serial")
serialQueue.async {
// Tapşırıq 1
}
serialQueue.async {
// Tapşırıq 2, Tapşırıq 1-dən sonra yerinə yetiriləcək
}