Sobes.tech
Junior — Middle

Pode explicar o conceito de concorrência estruturada na programação?

sobes.tech IA

Resposta da IA

A concorrência estruturada (structured concurrency) é uma abordagem para organizar código paralelo ou assíncrono, na qual o ciclo de vida das tarefas filhas é estritamente limitado pelo âmbito da tarefa pai. Isso significa que todas as operações paralelas iniciadas devem ser concluídas antes do término da tarefa pai, o que simplifica a gestão de erros e recursos.

No Android, por exemplo, ao usar Kotlin Coroutines, a concorrência estruturada ajuda a evitar fugas de coroutines e garante que todas as coroutines iniciadas serão canceladas se a tarefa pai for cancelada.

Exemplo em Kotlin:

runBlocking {
    launch { // coroutine filha
        delay(1000)
        println("Tarefa concluída")
    }
    println("Tarefa pai concluída")
}

Aqui, launch inicia uma coroutine filha, e runBlocking não terminará até que todas as coroutines filhas tenham finalizado, garantindo a concorrência estruturada.