Sobes.tech
Junior — Middle

Peut-on parler de l'existence d'une hiérarchie entre les coroutines lors de leur exécution?

sobes.tech IA

Réponse de l'IA

Oui, en Kotlin, les coroutines peuvent avoir une structure hiérarchique. Lorsque vous lancez une coroutine dans le contexte d'une autre coroutine (par exemple, en utilisant launch à l'intérieur d'une autre coroutine), une relation parent-enfant est créée. Si la coroutine parente est annulée, toutes ses coroutines enfants sont automatiquement annulées. Cela permet de gérer le cycle de vie des groupes de coroutines et d'éviter les fuites de ressources.

Exemple :

val parentJob = CoroutineScope(Dispatchers.Default).launch {
    val childJob = launch {
        // travail de la coroutine enfant
    }
}

// En annulant parentJob, childJob sera également annulé automatiquement
parentJob.cancel()