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

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

Ответ

Для работы с многопоточностью в Android чаще всего используются:

  1. Kotlin Coroutines – легковесные потоки с удобным API. Подходят для асинхронных задач, отменяемы и поддерживают structured concurrency.
    viewModelScope.launch {
        val data = withContext(Dispatchers.IO) { fetchData() }
        updateUI(data)
    }
  1. RxJava – реактивное программирование с операторами для сложных цепочек.
    Observable.fromCallable { fetchData() }
        .subscribeOn(Schedulers.io())
        .observeOn(AndroidSchedulers.mainThread())
        .subscribe { updateUI(it) }
  1. LiveData – потокобезопасный наблюдаемый контейнер данных, интегрируется с ViewModel.

  2. ExecutorService – для ручного управления пулами потоков.

  3. Handler + Looper – низкоуровневый подход для работы с UI-потоком.

Выбор зависит от задачи: Coroutines – современный стандарт, RxJava – для сложных сценариев, LiveData – для UI.