Junior — Middle
DispatchGroup yordamida bir nechta asinxron vazifalarni qanday sinxronlashtirish mumkin?
sobes.tech AI
AIdan javob
iOS-da DispatchGroup bir nechta asinxron vazifalarni sinxronlashtirish uchun ishlatiladi. U vazifa guruhining tugaganligini kuzatishga imkon beradi.
Ishlash prinsipi:
- DispatchGroup obyekti yaratiladi.
- Har bir asinxron vazifa
group.enter()yordamida boshlashdan oldin vagroup.leave()yordamida tugashidan so'ng guruhga qo'shiladi. - Guruhdagi barcha vazifalar tugaganidan so'ng,
group.notify(queue:)chaqirilishi mumkin.
Misol:
let group = DispatchGroup()
group.enter()
DispatchQueue.global().async {
// Asinxron vazifa 1
print("Vazifa 1 boshlandi")
// ... ish ...
print("Vazifa 1 tugadi")
group.leave()
}
group.enter()
DispatchQueue.global().async {
// Asinxron vazifa 2
print("Vazifa 2 boshlandi")
// ... ish ...
print("Vazifa 2 tugadi")
group.leave()
}
group.notify(queue: DispatchQueue.main) {
print("Barcha vazifalar tugadi")
}
Shu tarzda, DispatchGroup bir nechta parallel operatsiyaning tugashini kutishga va keyingi kodni bajarishga yordam beradi.