TGViewer
Android Live 🤖 Android Live 🤖 @android_live · 5.13K subscribers
Post #191 3.35K
​​RxJava: subscribeOn vs observeOn
#разработка

Эти два оператора помогают использовать один из важнейших аспектов RxJava — планирование работы в нужном потоке. Кажется, что нельзя допустить ошибок в использовании этих операторов. Однако, есть несколько нюансов, которые необходимо знать.

Оператор observeOn меняет поток для всех операторов, которые будут идти после него. Многие ошибочно полагают, что его действие распространяется также на впереди стоящих операторов.

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

Что будет, если расположить в цепочке несколько операторов? Если с observeOn понятно, то что поток будет изменяться каждый раз, когда мы пишем его, то с subscribeOn не все так однозначно.

Распространенным мнением является то, что учитывается только первый оператор. Однако недавно мне попалась статья о том, что несколько операторов subscribeOn могут влиять на цепочку. Подробно и с примерами кода ее можно прочитать тут

На мой взгляд, использовать несколько операторов в одной цепочке — это чаще всего неочевидно и излишне. Но вопрос: «Что будет, если расположить подряд несколько операторов observeOn\ subscribeOn?» очень распространен в различных квестах, викторинах и на собеседованиях. Теперь вы точно знаете ответ на этот вопрос!
More from @android_live
  1. Oct 6, 2026Git --delete-merged На днях узнал про любопытную команду в Git — --delete-merged . Суть пр…
  2. Oct 5, 2026Почему Android-эмулятор жрёт 8 ГБ? На днях попался репозиторий с CLI-тулзой, которая обеща…
  3. Sep 29, 2026Post #1130
  4. Sep 29, 2026На днях попалась вакансия мечты Вроде всё начинается как неплохо: удалёнка, Kotlin/Jetpack…
  5. Sep 28, 2026На днях ревьювил код, связанный с копированием в буфер обмена И заметил, что многие прилож…
  6. Sep 26, 2026AirDrop на Android, похоже, уже есть на нескольких моделях Android Но, оказывается, всё эт…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →