Junior — Middle
Kan een een parent coroutine eerder eindigen dan een child coroutine die binnenin is gestart?
sobes.tech AI
Antwoord van AI
In Kotlin kan de ouder-coroutine eerder eindigen dan de kind-coroutine als de kind-coroutine in een andere context of in de globale scope wordt gestart.
Echter, als de kind-coroutine wordt gestart in de context van de ouder (bijvoorbeeld via launch in een CoroutineScope van de ouder), dan wacht de ouder-coroutine op de voltooiing van de kind-coroutines en eindigt later of gelijktijdig met hen.
Voorbeeld:
runBlocking {
val job = launch {
launch {
delay(1000)
println("Kind-coroutine voltooid")
}
println("Ouder-coroutine voltooid")
}
job.join()
}
In dit voorbeeld zal de ouder-coroutine niet eindigen voordat de kind-coroutines zijn voltooid.
Als de kind-coroutine echter wordt gestart in GlobalScope, kan de ouder-coroutine eerder eindigen.