devterview_$ iniciar simulação

Coroutines e concorrência estruturada

DifícilSêniorConcorrência

Pergunta

O que são coroutines no Kotlin e o que 'concorrência estruturada' resolve em relação a soltar threads/callbacks à vontade?

Resposta esperada

Coroutines são funções suspensíveis: `suspend fun` pode pausar num ponto de suspensão (`delay`, chamada de rede) e liberar a thread pra outro trabalho, retomando depois — dá código sequencial pra fluxo assíncrono, sem callback hell, e muito mais barato que uma thread por tarefa. Concorrência estruturada: toda coroutine roda dentro de um `CoroutineScope` com um ciclo de vida; quando o escopo é cancelado (a tela fechou, o request abortou), todas as coroutines filhas são canceladas junto, e o escopo só termina quando todas as filhas terminam. Isso elimina a classe de bugs de 'trabalho órfão' — corrotina/thread que continua rodando depois que ninguém precisa do resultado, vazando recurso ou escrevendo em algo já destruído.

Por que perguntam isso

Pergunta pleno/sênior. Termo-chave: 'structured concurrency' e o problema do 'trabalho órfão' / cancelamento propagado.

#coroutines#structured-concurrency#suspend
publicidade

Relacionadas