Sobes.tech
Junior — Middle

GCD'de hangi kuyruk türleri mevcuttur ve davranış ve kullanım açısından nasıl farklılık gösterirler?

sobes.tech yapay zeka

AI'dan gelen yanıt

GCD'de aşağıdaki kuyruk türleri mevcuttur:

  1. Seri Kuyruklar (Serial Queues)

    • Görevleri sıralı olarak, birer birer yürütür.
    • Kaynaklara erişimi senkronize etmek ve yarış koşullarını önlemek için kullanılır.
    • Özelleştirilmiş seri kuyruklar oluşturulabilir.
  2. Eşzamanlı Kuyruklar (Concurrent Queues)

    • Birden fazla görevi aynı anda yürütür.
    • Farklı önceliklere (QoS) sahip küresel eşzamanlı kuyruklar vardır.
    • Çok işlemcili sistemleri verimli kullanmaya olanak tanır.
  3. Ana Kuyruk (Main Queue)

    • Uygulamanın ana akışına bağlı seri kuyruk.
    • UI güncellemeleri ve ana akışta yapılması gereken diğer işlemler için kullanılır.

Farklar ve kullanım:

  • Seri kuyruklar yürütme sırasını garanti eder ve ortak kaynaklara eşzamanlı erişimi engeller.
  • Eşzamanlı kuyruklar, görevlerin aynı anda yürütülmesiyle performansı artırır.
  • iOS'ta UI ile çalışmak için ana kuyruk zorunludur.

Seri kuyruk oluşturma ve kullanma örneği:

let serialQueue = DispatchQueue(label: "com.example.serial")
serialQueue.async {
    // Görev 1
}
serialQueue.async {
    // Görev 2, Görev 1'den sonra yürütülecek
}