Sobes.tech
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.