Sobes.tech
Junior — Middle

Může rodičovská korutina skončit dříve než její vnořená korutina?

sobes.tech AI

Odpověď od AI

V Kotlinu může rodičovská korutina skončit dříve než dětská, pokud je dětská korutina spuštěna v jiném kontextu nebo v globálním scope.

Nicméně, pokud je dětská korutina spuštěna v kontextu rodiče (například pomocí launch v CoroutineScope rodiče), pak rodičovská korutina bude čekat na dokončení dětských korutin a skončí později nebo současně s nimi.

Příklad:

runBlocking {
    val job = launch {
        launch {
            delay(1000)
            println("Dětská korutina dokončena")
        }
        println("Rodičovská korutina dokončena")
    }
    job.join()
}

V tomto příkladu se rodičovská korutina neskončí, dokud nedokončí dětské korutiny.

Pokud je však dětská korutina spuštěna v GlobalScope, může se rodičovská korutina ukončit dříve.