Sobes.tech
Junior — Middle

GCD-ში რა სახის რიგებია ხელმისაწვდომი და როგორ განსხვავდებიან ისინი ქცევასა და გამოყენებაში?

sobes.tech AI

პასუხი AI-სგან

GCD-də aşağıdakı növ növbələr mövcuddur:

  1. 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.
  2. 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.
  3. Əsas növbə (Main Queue)

    • Tətbiqin əsas axını ilə əlaqəli serial növbə.
    • UI yeniləmələri 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 yürütmə 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ə zəruridir.

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
}