Ответ
В Kotlin Coroutines есть несколько стандартных Dispatchers:
- Dispatchers.Main - для работы с UI (Android, JavaFX). Работает в главном потоке.
- Dispatchers.IO - для блокирующих операций (сеть, БД, файлы). Использует пул потоков.
- Dispatchers.Default - для CPU-интенсивных задач (сортировки, вычисления). Использует пул потоков размером с количество ядер CPU.
- Dispatchers.Unconfined - запускает корутину в текущем потоке, но после первой приостановки может продолжить в любом.
Пример:
viewModelScope.launch(Dispatchers.IO) {
val data = fetchData() // IO операция
withContext(Dispatchers.Main) {
updateUI(data) // UI операция
}
}