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.