Junior — Middle
Qual é a diferença entre Dispatchers.Default e Dispatchers.IO no contexto das Coroutines Kotlin?
sobes.tech IA
Resposta da IA
No Kotlin Coroutines, Dispatchers.Default e Dispatchers.IO destinam-se a diferentes tipos de tarefas:
-
Dispatchers.Default: é usado para operações intensivas de CPU, como cálculos e processamento de dados. Utiliza um grupo de threads cujo tamanho depende do número de núcleos de processador disponíveis.
-
Dispatchers.IO: otimizado para operações de entrada/saída (leitura/gravação de ficheiros, pedidos de rede, trabalho com bases de dados). Utiliza um grupo de threads expandido que permite executar mais threads do que núcleos de CPU, para não bloquear as coroutines enquanto aguardam IO.
Exemplo:
// Tarefa intensiva de CPU
withContext(Dispatchers.Default) {
// cálculos complexos
}
// Tarefa intensiva de IO
withContext(Dispatchers.IO) {
// leitura de ficheiro ou pedido de rede
}