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()