Sobes.tech
Junior — Middle

É possível falar na existência de uma hierarquia entre as corrotinas durante a sua execução?

sobes.tech IA

Resposta da IA

Sim, no Kotlin as coroutines podem ter uma estrutura hierárquica. Quando inicia uma coroutine no contexto de outra coroutine (por exemplo, usando launch dentro de outra coroutine), é criada uma relação pai-filho. Se a coroutine pai for cancelada, todas as suas coroutines filhas são automaticamente canceladas. Isso permite gerir o ciclo de vida de grupos de coroutines e evitar fugas de recursos.

Exemplo:

val parentJob = CoroutineScope(Dispatchers.Default).launch {
    val childJob = launch {
        // trabalho da coroutine filha
    }
}

// Ao cancelar parentJob, childJob também será cancelado automaticamente
parentJob.cancel()