Ответ
Корутины в Kotlin можно разделить на несколько типов:
- Строители корутин (Coroutine Builders) - функции для запуска корутин:
launch { } // запуск без результата
async { } // запуск с возвратом Deferred<T>
runBlocking { } // блокирующий запуск (для тестов/main)
- Контексты корутин (Coroutine Contexts):
- Dispatchers (IO, Default, Main, Unconfined)
- Job (управление жизненным циклом)
- CoroutineName (именование для дебага)
- CoroutineExceptionHandler (обработка ошибок)
- Области видимости (Coroutine Scopes):
- GlobalScope (не рекомендуется)
- CoroutineScope (рекомендуемый способ)
- viewModelScope, lifecycleScope (из AndroidX)
- Состояния корутин:
- Active (работает)
- Completing (завершается)
- Cancelled (отменена)
- Completed (успешно завершена)