Junior — Middle
Pouvez-vous expliquer ce qu'est la structure DispatchGroup et comment elle est utilisée pour synchroniser l'exécution de plusieurs tâches asynchrones?
sobes.tech IA
Réponse de l'IA
DispatchGroup est un mécanisme dans iOS (GCD) qui permet de regrouper plusieurs tâches asynchrones et de suivre leur achèvement. Il aide à synchroniser l'exécution, par exemple, pour exécuter un certain code après que toutes les tâches du groupe soient terminées.
Principe de fonctionnement :
- Un DispatchGroup est créé.
- Chaque tâche asynchrone est ajoutée au groupe avec
enter()avant de commencer etleave()après la fin. - On peut appeler
notify(queue:)pour recevoir une notification lorsque toutes les tâches du groupe sont terminées.
Exemple :
let group = DispatchGroup()
group.enter()
DispatchQueue.global().async {
// Tâche asynchrone 1
print("Tâche 1 démarrée")
sleep(2)
print("Tâche 1 terminée")
group.leave()
}
group.enter()
DispatchQueue.global().async {
// Tâche asynchrone 2
print("Tâche 2 démarrée")
sleep(1)
print("Tâche 2 terminée")
group.leave()
}
group.notify(queue: .main) {
print("Toutes les tâches sont terminées")
}
Ainsi, DispatchGroup aide à attendre la fin de plusieurs opérations parallèles et à exécuter du code ultérieurement.