Что такое асинхронность

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

Ответ

Асинхронность — это выполнение операций без блокировки основного потока. В Android это критично, т.к. UI работает в главном потоке, и долгие операции (сеть, БД) должны выполняться асинхронно.

Основные подходы:

  1. Threads — базовый способ, но сложно управлять
  2. AsyncTask (устарел) — простой, но с ограничениями
  3. RxJava — мощный, но сложный
  4. Coroutines — современное решение (рекомендуется)

Пример с корутинами:

viewModelScope.launch {
    val data = withContext(Dispatchers.IO) { 
        repository.fetchData() // Блокирующий вызов
    }
    updateUi(data) // Возвращаемся в главный поток
}

Видео-ответы