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
}