Junior — Middle
¿Puedes explicar la concepto de SupervisorJob en el contexto de las corutinas de Kotlin?
sobes.tech AI
Respuesta de la IA
SupervisorJob en Kotlin es un tipo especial de Job que se utiliza para gestionar un grupo de corutinas, donde un error en una corutina no cancela las demás. En un Job normal, si ocurre una excepción en una corutina hija, se cancela todo el Job padre y todas sus corutinas hijas.
En el caso de SupervisorJob, las corutinas funcionan de manera independiente: si una termina con un error, las otras continúan ejecutándose. Esto es útil cuando se necesitan lanzar varias tareas en paralelo y no detener todo en caso de fallo de una.
Ejemplo de uso:
val supervisor = SupervisorJob()
val scope = CoroutineScope(Dispatchers.Default + supervisor)
scope.launch {
launch {
// Esta corutina puede fallar, pero no afectará a las otras
throw RuntimeException("Error")
}
launch {
// Esta corutina continuará trabajando
println("Trabajando")
}
}
De esta forma, SupervisorJob ayuda a aislar errores entre corutinas hijas, asegurando una ejecución más robusta de tareas en paralelo.