Какое количество потоков нужно для вычислений в DefaultDispatcher

«Какое количество потоков нужно для вычислений в DefaultDispatcher» — вопрос из категории Coroutines и Flow, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Для вычислений в DefaultDispatcher (Coroutine Dispatcher) оптимальное количество потоков обычно равно количеству CPU-ядер. Kotlin Coroutines автоматически настраивают Dispatchers.Default с размером пула, равным Runtime.getRuntime().availableProcessors(), но не менее 2.

Пример:

val cores = Runtime.getRuntime().availableProcessors()  
println("DefaultDispatcher threads: $cores")  

Для CPU-bound задач этого достаточно, чтобы избежать перегрузки контекстными переключениями. Если нужна тонкая настройка, можно создать свой Dispatcher с Executors.newFixedThreadPool(n).