Какие знаешь фреймворки для работы с многопоточностью

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

Ответ

В Android разработке основные фреймворки для работы с многопоточностью:

  1. Thread/Handler/Looper - базовый механизм Android
Thread {
    // Фоновая работа
    Handler(Looper.getMainLooper()).post {
        // Обновление UI
    }
}.start()
  1. AsyncTask (устарел, не рекомендуется) - упрощал работу с UI потоком

  2. RxJava - реактивное программирование с богатыми операторами

Observable.fromCallable { /* фоновая работа */ }
    .subscribeOn(Schedulers.io())
    .observeOn(AndroidSchedulers.mainThread())
  1. Coroutines (рекомендуемый подход) - легковесные потоки Kotlin
viewModelScope.launch {
    val result = withContext(Dispatchers.IO) { /* фоновая работа */ }
    // UI обновление (автоматически в Main)
}
  1. ExecutorService - пулы потоков для параллельных задач

  2. WorkManager - для отложенных фоновых задач

Coroutines сейчас являются предпочтительным выбором благодаря интеграции с Kotlin, простоте и минимальному boilerplate коду.