Что такое корутины

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

Ответ

Корутины — это легковесные потоки, упрощающие асинхронное программирование. В отличие от потоков, они работают в рамках одного потока ОС и переключаются без блокировки.

Особенности:

  • Используют suspend-функции для остановки/возобновления
  • Экономят ресурсы (тысячи корутин vs десятки потоков)
  • Интегрированы с CoroutineScope и Dispatcher (IO, Main, Default)

Пример:

viewModelScope.launch(Dispatchers.IO) {
    val data = fetchData() // suspend-функция
    withContext(Dispatchers.Main) {
        updateUI(data) // Обновляем UI в главном потоке
    }
}

Где использовать: асинхронные операции, отмена задач, параллельные запросы.