Junior — Middle
Qual é o papel do SupervisorJob na gestão de corrotinas em Kotlin?
sobes.tech IA
Resposta da IA
SupervisorJob em Kotlin é um tipo especial de Job que é usado para gerir um grupo de coroutines, garantindo o isolamento de erros entre elas.
O papel principal do SupervisorJob é permitir que as coroutines filhas funcionem de forma independente: se uma das coroutines filhas terminar com um erro, isso não levará ao cancelamento das outras coroutines lançadas dentro deste SupervisorJob.
Isto difere de um Job normal, onde um erro numa coroutine filha leva ao cancelamento de todo o Job pai e de todas as suas filhas.
Exemplo de uso:
val supervisor = SupervisorJob()
val scope = CoroutineScope(Dispatchers.Default + supervisor)
scope.launch {
// coroutine 1
}
scope.launch {
// coroutine 2, se falhar com um erro, a coroutine 1 continuará a trabalhar
}
Assim, o SupervisorJob é útil quando precisa de lançar várias tarefas independentes, e a falha de uma não deve afetar as outras.