Sobes.tech
Junior — Middle

El tudnád magyarázni, hogy mi az a SupervisorJob a Kotlinban a korutinok és a feladatkezelés kontextusában?

sobes.tech MI

Válasz az MI-től

SupervisorJob — egy speciális típusú Job a Kotlin Coroutines-ban, amelyet egy csoport korutin kezelésére használnak, ahol egy korutinban bekövetkező hiba nem törli a többit.

Egy Job (vagy CoroutineScope) esetén, ha egy gyermek korutinban kivétel történik, minden más is törlésre kerül. A SupervisorJob esetén ez a viselkedés megváltozik: egy korutinban lévő hiba nem befolyásolja a többi korutint.

Használati példa:

val supervisor = SupervisorJob()
val scope = CoroutineScope(Dispatchers.Default + supervisor)

scope.launch {
    // Olyan korutin, ami hibázhat
}

scope.launch {
    // Egy másik korutin, ami folytatja a működést, még ha az első hibázik
}

Ez akkor hasznos, ha több független feladatot szeretnénk párhuzamosan indítani, és nem akarjuk leállítani az összeset, ha egy hibát okoz.