Ответ
Создать Dispatcher с одним потоком можно через Executors.newSingleThreadExecutor(). Он создаст пул с одним потоком, который будет последовательно выполнять задачи.
val dispatcher = Executors.newSingleThreadExecutor().asCoroutineDispatcher()
Использование:
CoroutineScope(dispatcher).launch {
// Код выполняется в одном потоке
}
Важно: Не забывайте закрывать Dispatcher после использования, чтобы избежать утечек:
dispatcher.close()
Альтернативно можно использовать Dispatchers.IO.limitedParallelism(1), но это менее предсказуемо, так как Dispatchers.IO может переиспользовать потоки.