Junior — Middle
¿Puede explicar qué es la estructura DispatchGroup y cómo se usa para sincronizar la ejecución de varias tareas asíncronas?
sobes.tech AI
Respuesta de la IA
DispatchGroup es un mecanismo en iOS (GCD) que permite agrupar varias tareas asíncronas y hacer un seguimiento de su finalización. Ayuda a sincronizar la ejecución, por ejemplo, para ejecutar cierto código después de que todas las tareas del grupo hayan finalizado.
Principio de funcionamiento:
- Se crea un DispatchGroup.
- Cada tarea asíncrona se añade al grupo usando
enter()antes de comenzar yleave()después de terminar. - Se puede llamar a
notify(queue:)para recibir una notificación cuando todas las tareas del grupo hayan finalizado.
Ejemplo:
let group = DispatchGroup()
group.enter()
DispatchQueue.global().async {
// Tarea asíncrona 1
print("Tarea 1 iniciada")
sleep(2)
print("Tarea 1 finalizada")
group.leave()
}
group.enter()
DispatchQueue.global().async {
// Tarea asíncrona 2
print("Tarea 2 iniciada")
sleep(1)
print("Tarea 2 finalizada")
group.leave()
}
group.notify(queue: .main) {
print("Todas las tareas han finalizado")
}
De esta forma, DispatchGroup ayuda a esperar la finalización de varias operaciones paralelas y ejecutar código posterior.