Junior — Middle
Qual é o papel principal das corrotinas na programação e como elas diferem dos threads?
sobes.tech IA
Resposta da IA
As corutinas são threads leves que permitem escrever código assíncrono e concorrente de forma mais simples e compreensível. No Android (e Kotlin), as corutinas são usadas para executar tarefas em segundo plano sem bloquear a thread principal (thread UI).
Principais diferenças entre corutinas e threads:
- Leveza: as corutinas usam muito menos recursos do que os threads do sistema.
- Gestão: as corutinas são geridas por um agendador dentro da aplicação, não pelo sistema operativo.
- Pausar e retomar: as corutinas podem ser suspensas em pontos específicos (suspend) e retomadas, o que simplifica a programação assíncrona.
Exemplo de uso de corutina em Kotlin para Android:
import kotlinx.coroutines.*
fun loadData() {
GlobalScope.launch(Dispatchers.Main) { // inicia uma corutina na thread principal
val data = withContext(Dispatchers.IO) { // muda para uma thread de fundo
fetchDataFromNetwork() // requisição longa
}
updateUI(data) // atualiza a UI
}
}
Assim, as corutinas permitem escrever código assíncrono que parece sequencial, sem callbacks complexos ou bloqueios.