Что такое Coroutines

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

Ответ

Coroutines — это легковесные потоки, позволяющие писать асинхронный код последовательно, без колбэков. Они приостанавливают выполнение, не блокируя поток, и возобновляют работу при готовности результата.

Ключевые особенности:

  • Работают в рамках одного потока (не создают новых Thread)
  • Управляются диспетчерами (Dispatchers.IO, Main, Default)
  • Поддерживают отмену (cancellation)
  • Меньше накладных расходов, чем у потоков
viewModelScope.launch(Dispatchers.IO) {
    val data = repository.fetchData() // suspend-функция
    withContext(Dispatchers.Main) {
        updateUI(data) // Обновляем UI в главном потоке
    }
}

Используются для:

  • Асинхронных операций
  • Работы с БД
  • Сетевых запросов
  • Параллельных задач (async/await)