Sobes.tech
Junior — Middle

Quais métodos podem ser usados para alternar a execução de coroutines dentro de um único thread?

sobes.tech IA

Resposta da IA

No Kotlin, as corrotinas podem ser trocadas dentro de um mesmo thread usando diferentes despachantes e funções:

  • withContext(Dispatchers.Main) — troca para o thread principal (UI).
  • withContext(Dispatchers.Default) — troca para um pool de threads para tarefas intensivas de CPU.
  • withContext(Dispatchers.IO) — troca para um pool de threads para operações de entrada/saída.

Além disso, pode-se usar yield() para ceder voluntariamente o controlo a outra coroutine dentro do mesmo thread.

Exemplo de troca de contexto:

launch {
    // Trabalho no thread principal
    withContext(Dispatchers.IO) {
        // Executar operação de entrada/saída
    }
    // Retorno ao thread principal
}