Junior — Middle
Is het mogelijk om te spreken van een hiërarchie tussen coroutines tijdens hun uitvoering?
sobes.tech AI
Antwoord van AI
Ja, in Kotlin kunnen coroutines een hiërarchische structuur hebben. Wanneer je een coroutine start in de context van een andere coroutine (bijvoorbeeld met launch binnen een andere coroutine), wordt er een ouder-kind relatie gecreëerd. Als de ouder-coroutine wordt geannuleerd, worden alle onderliggende coroutines automatisch geannuleerd. Dit maakt het mogelijk om de levenscyclus van groepen coroutines te beheren en resource leaks te voorkomen.
Voorbeeld:
val parentJob = CoroutineScope(Dispatchers.Default).launch {
val childJob = launch {
// werk van de kind-coroutine
}
}
// Bij annulering van parentJob wordt ook childJob automatisch geannuleerd
parentJob.cancel()