Как создать Dispatcher c одним потоком

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

Ответ

Создать Dispatcher с одним потоком можно через Executors.newSingleThreadExecutor(). Он создаст пул с одним потоком, который будет последовательно выполнять задачи.

val dispatcher = Executors.newSingleThreadExecutor().asCoroutineDispatcher()

Использование:

CoroutineScope(dispatcher).launch {
    // Код выполняется в одном потоке
}

Важно: Не забывайте закрывать Dispatcher после использования, чтобы избежать утечек:

dispatcher.close()

Альтернативно можно использовать Dispatchers.IO.limitedParallelism(1), но это менее предсказуемо, так как Dispatchers.IO может переиспользовать потоки.