Sobes.tech
Junior — Middle

Lehet-e hierarchiáról beszélni a coroutine-ok között futás közben?

sobes.tech MI

Válasz az MI-től

Igen, Kotlinban a korutinok hierarchikus szerkezetűek lehetnek. Amikor egy korutint egy másik korutinnak a kontextusában indítasz (például a launch használatával egy másik korutin belsejében), akkor szülő-gyermek kapcsolat jön létre. Ha a szülő korutina megszakad, akkor az összes gyermek korutina automatikusan megszakad. Ez lehetővé teszi a korutin csoportok életciklusának kezelését és az erőforrás-szivárgások megelőzését.

Példa:

val parentJob = CoroutineScope(Dispatchers.Default).launch {
    val childJob = launch {
        // gyermek korutina munkája
    }
}

// A parentJob megszakításakor, a childJob is automatikusan megszakad
parentJob.cancel()