Junior — Middle
DispatchGroup strukturu nədir və çoxsaylı asinxron tapşırıqların icrasını necə sinxronlaşdırmaq üçün istifadə olunur?
sobes.tech Süni İntellekt
AI-dan cavab
DispatchGroup — bu iOS (GCD) mexanizmi olub, bir neçə asinxron vəzifəni qruplaşdırmağa və onların tamamlanmasını izləməyə imkan verir. Bu, icraatı sinxronlaşdırmağa kömək edir, məsələn, bütün vəzifələr qrupdan tamamlandıqdan sonra müəyyən bir kodu icra etmək üçün.
İş prinsipi:
- DispatchGroup yaradılır.
- Hər bir asinxron vəzifə
enter()ilə başlamadan əvvəl vəleave()ilə tamamlandıqdan sonra qrupa əlavə olunur. - Bütün vəzifələr tamamlandıqda bildiriş almaq üçün
notify(queue:)çağırıla bilər.
Nümunə:
let group = DispatchGroup()
group.enter()
DispatchQueue.global().async {
// Asinxron vəzifə 1
print("Vəzifə 1 başladı")
sleep(2)
print("Vəzifə 1 tamamlandı")
group.leave()
}
group.enter()
DispatchQueue.global().async {
// Asinxron vəzifə 2
print("Vəzifə 2 başladı")
sleep(1)
print("Vəzifə 2 tamamlandı")
group.leave()
}
group.notify(queue: .main) {
print("Bütün vəzifələr tamamlandı")
}
Bu şəkildə, DispatchGroup paralel olaraq həyata keçirilən bir neçə əməliyyatın tamamlanmasını gözləməyə və sonra kodu icra etməyə kömək edir.