Ответ
Coroutines в Kotlin состоят из нескольких ключевых компонентов:
- CoroutineScope – определяет область жизни корутины (например,
viewModelScope,lifecycleScope). - Job – управляет жизненным циклом корутины (можно отменять).
- Dispatcher – определяет поток выполнения (
Dispatchers.IO,Dispatchers.Main,Dispatchers.Default). - CoroutineContext – хранит контекст выполнения (диспетчер, Job, обработчик исключений).
- Suspend функции – функции, которые могут приостанавливать выполнение без блокировки потока.
Пример:
viewModelScope.launch(Dispatchers.IO) {
val result = suspendFetchData() // suspend функция
withContext(Dispatchers.Main) {
updateUI(result)
}
}