Junior — Middle
Bir DispatchGroup yapısının ne olduğunu ve çoklu asenkron görevlerin yürütülmesini nasıl senkronize etmek için kullanıldığını açıklayabilir misiniz?
sobes.tech yapay zeka
AI'dan gelen yanıt
DispatchGroup, iOS'te (GCD) birden fazla asenkron görevi gruplandırmaya ve tamamlanmalarını izlemeye olanak tanıyan bir mekanizmadır. Tüm görevler tamamlandıktan sonra belirli bir kodu çalıştırmak gibi senkronizasyon sağlar.
Çalışma prensibi:
- Bir DispatchGroup oluşturulur.
- Her asenkron görev, başlamadan önce
enter()ile ve tamamlandıktan sonraleave()ile gruba eklenir. - Tüm görevler tamamlandığında bildirim almak için
notify(queue:)çağrılabilir.
Örnek:
let group = DispatchGroup()
group.enter()
DispatchQueue.global().async {
// Asenkron görev 1
print("Görev 1 başladı")
sleep(2)
print("Görev 1 tamamlandı")
group.leave()
}
group.enter()
DispatchQueue.global().async {
// Asenkron görev 2
print("Görev 2 başladı")
sleep(1)
print("Görev 2 tamamlandı")
group.leave()
}
group.notify(queue: .main) {
print("Tüm görevler tamamlandı")
}
Bu şekilde, DispatchGroup, paralel olarak yürütülen birkaç işlemin tamamlanmasını beklemeye ve ardından kodu çalıştırmaya yardımcı olur.