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