Junior — Middle
Můžete vysvětlit, co je struktura DispatchGroup a jak se používá k synchronizaci provádění několika asynchronních úkolů?
sobes.tech AI
Odpověď od AI
DispatchGroup je mechanismus v iOS (GCD), který umožňuje seskupit několik asynchronních úkolů a sledovat jejich dokončení. Pomáhá synchronizovat provádění, například aby se provedl určitý kód po dokončení všech úkolů ve skupině.
Princip fungování:
- Vytvoří se DispatchGroup.
- Každý asynchronní úkol je přidán do skupiny pomocí
enter()před začátkem aleave()po dokončení. - Může být voláno
notify(queue:), aby bylo možné obdržet oznámení, když všechny úkoly ve skupině skončí.
Příklad:
let group = DispatchGroup()
group.enter()
DispatchQueue.global().async {
// Asynchronní úkol 1
print("Úkol 1 začal")
sleep(2)
print("Úkol 1 skončil")
group.leave()
}
group.enter()
DispatchQueue.global().async {
// Asynchronní úkol 2
print("Úkol 2 začal")
sleep(1)
print("Úkol 2 skončil")
group.leave()
}
group.notify(queue: .main) {
print("Všechny úkoly jsou dokončeny")
}
Tímto způsobem pomáhá DispatchGroup počkat na dokončení několika paralelních operací a následně spustit kód.