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:
-
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.
-
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.
-
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
}