Sobes.tech
Junior — Middle

Môže rodičovská korutina skončiť skôr ako jej vnútorná korutina?

sobes.tech AI

Odpoveď od AI

V Kotlinu môže rodičovská korutina skončiť skôr ako detská, ak je detská korutina spustená v inom kontexte alebo v globálnom scope.

Avšak, ak je detská korutina spustená v kontexte rodiča (napríklad pomocou launch v CoroutineScope rodiča), potom rodičovská korutina bude čakať na dokončenie detských korutín a skončí neskôr alebo súčasne s nimi.

Príklad:

runBlocking {
    val job = launch {
        launch {
            delay(1000)
            println("Detská korutina dokončená")
        }
        println("Rodičovská korutina dokončená")
    }
    job.join()
}

V tomto príklade sa rodičovská korutina neskončí, kým detské korutiny nebudú dokončené.

Ak je však detská korutina spustená v GlobalScope, môže sa rodičovská korutina ukončiť skôr.