Какие знаешь основные элементы в корутинах

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

Ответ

Корутины в Kotlin состоят из нескольких ключевых элементов:

  1. CoroutineScope – определяет область видимости корутины (например, lifecycleScope в Android).
  2. Dispatcher – определяет поток выполнения:
    • Dispatchers.Main – UI-поток.
    • Dispatchers.IO – для операций ввода-вывода.
    • Dispatchers.Default – для CPU-интенсивных задач.
  3. Job – управляет жизненным циклом корутины (можно отменять).
  4. Deferred – аналог Future, возвращает результат асинхронно (async).
  5. CoroutineContext – объединяет Dispatcher, Job и другие элементы.

Пример:

viewModelScope.launch(Dispatchers.IO) {
    val result = async { fetchData() }.await()
    withContext(Dispatchers.Main) { updateUI(result) }
}