Ответ
Dispatchers.Default предназначен для CPU-интенсивных операций (сортировка, вычисления). Использует пул потоков, равный количеству ядер CPU (минимум 2).
Dispatchers.IO оптимизирован для работы с блокирующими I/O операциями (сеть, файлы, БД). Имеет расширяемый пул потоков (до 64).
Пример:
// Для вычислений
withContext(Dispatchers.Default) {
heavyComputation()
}
// Для I/O
withContext(Dispatchers.IO) {
readFile()
}
Важно: Не используйте Dispatchers.IO для CPU-задач – это может привести к избыточному созданию потоков.