Junior — Middle
¿Se puede hablar de la existencia de una jerarquía entre las corutinas durante su ejecución?
sobes.tech AI
Respuesta de la IA
Sí, en Kotlin las corrutinas pueden tener una estructura jerárquica. Cuando inicias una corrutina en el contexto de otra corrutina (por ejemplo, usando launch dentro de otra corrutina), se crea una relación padre-hijo. Si la corrutina padre se cancela, todas sus corrutinas hijas se cancelan automáticamente. Esto permite gestionar el ciclo de vida de grupos de corrutinas y prevenir fugas de recursos.
Ejemplo:
val parentJob = CoroutineScope(Dispatchers.Default).launch {
val childJob = launch {
// trabajo de la corrutina hija
}
}
// Al cancelar parentJob, childJob también se cancelará automáticamente
parentJob.cancel()