Junior — Middle
Uma coroutine pai pode terminar a sua execução antes da coroutine filha, iniciada dentro dela?
sobes.tech IA
Resposta da IA
No Kotlin, a coroutine pai pode terminar antes da filha se a filha for iniciada em outro contexto ou no escopo global.
No entanto, se a coroutine filha for iniciada no contexto da pai (por exemplo, através de launch em um CoroutineScope da pai), então a coroutine pai aguardará a conclusão das coroutines filhas, e terminará mais tarde ou ao mesmo tempo que elas.
Exemplo:
runBlocking {
val job = launch {
launch {
delay(1000)
println("Coroutine filha terminada")
}
println("Coroutine pai terminada")
}
job.join()
}
Neste exemplo, a coroutine pai não terminará até que as filhas tenham terminado.
Se, por outro lado, a coroutine filha for iniciada em GlobalScope, a coroutine pai pode terminar antes.