Что такое метод subscribeOn

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

Ответ

Метод subscribeOn в RxJava определяет, на каком потоке будет выполняться подписка и обработка данных в цепочке операторов. Он влияет на весь пайплайн до первого вызова observeOn.

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

  • Работает "снизу вверх" – влияет на все операторы выше
  • Если вызван несколько раз – учитывается первый вызов
  • По умолчанию подписка происходит на текущем потоке

Пример:

Observable.just(1, 2, 3)
    .subscribeOn(Schedulers.io()) // Запуск на IO-потоке
    .map { it * 2 } // Выполняется на IO
    .observeOn(AndroidSchedulers.mainThread())
    .subscribe { /* UI-поток */ }

Используется для выноса тяжелых операций (сеть, БД) с главного потока.