Junior — Middle
Môžete vysvetliť, čo je SupervisorJob v kontexte korutín a správy úloh v Kotlin?
sobes.tech AI
Odpoveď od AI
SupervisorJob je špeciálny typ Job v Kotlin Coroutines, ktorý sa používa na správu skupiny korutín, kde chyba v jednej ne spôsobí zrušenie ostatných.
V bežnom Job (alebo CoroutineScope) pri výskyte výnimky v jednej podriadenej korutíne dôjde k zrušeniu všetkých ostatných. S SupervisorJob sa toto správanie mení: chyba v jednej korutíne neovplyvňuje vykonávanie ostatných.
Príklad použitia:
val supervisor = SupervisorJob()
val scope = CoroutineScope(Dispatchers.Default + supervisor)
scope.launch {
// Korutína, ktorá môže zlyhať
}
scope.launch {
// Iná korutína, ktorá bude pokračovať v práci aj keď prvá zlyhá
}
Toto je užitočné, keď chcete spustiť niekoľko nezávislých úloh paralelne a nezastaviť všetko, ak jedna zlyhá.