Ответ 1
Как указано в документации:
Небольшое сожаление о внедрении противодавления в RxJava 0.x заключается в том, что вместо того, чтобы иметь отдельный базовый реактивный класс, наблюдаемый сам был модернизирован. Основная проблема с противодавлением заключается в том, что многие горячие источники, такие как события пользовательского интерфейса, не могут быть достаточно прочным и вызвать неожиданный
MissingBackpressureException
(то есть, новички не ожидайте их).Мы пытаемся исправить эту ситуацию в 2.x, имея
io.reactivex.Observable
без проскальзывания и новыйio.reactivex.Flowable
- базовый реактивный класс с защитой от противодавления.
Используйте Observable
, когда у вас относительно мало элементов с течением времени (< 1000) и/или существует без риска производителя, перенасыщающего потребителей и, таким образом, вызывающего OOM.
Используйте Flowable
, когда у вас относительно большое количество элементов, и вам нужно тщательно контролировать поведение Producer
, чтобы избежать истощения ресурсов и/или перегруженности.