【问题标题】:What is the difference between Observable and Flowable in RxJava 2.0?RxJava 2.0 中的 Observable 和 Flowable 有什么区别?
【发布时间】:2018-03-07 15:33:32
【问题描述】:

Observable 和 Flowable 接口似乎是相同的。为什么在 RxJava 2.0 中引入了 Flowable?什么时候我应该更喜欢使用 Flowable 而不是 Observable?

【问题讨论】:

标签: java rx-java


【解决方案1】:

the documentation中所述:

在 RxJava 0.x 中引入背压的一个小遗憾是 Observable 没有单独的基础反应类 本身是改装的。背压的主要问题是很多 热源(例如 UI 事件)无法合理地进行背压,并且 导致意外MissingBackpressureException(即初学者不会 期待他们)。

我们尝试在 2.x 中通过使 io.reactivex.Observable 非背压和新 io.reactivex.Flowable 是支持背压的基础反应类。

当您随着时间的推移拥有相对较少的项目 (没有风险时,请使用 Observable

当您拥有相对大量的项目并且需要仔细控制Producer 的行为方式以避免资源耗尽和/或拥塞时,请使用Flowable


背压 当您有一个 observable 发出项目的速度如此之快以至于消费者无法跟上导致已发出但未消费的项目的存在时。

由 observables 发出但未被订阅者消费的未消费项目如何被管理和控制是背压策略处理的。

Ref link

【讨论】:

  • 我认为它们应该仍然支持通用接口,或者 Flowable 应该扩展 Observable,这样它们就可以合并等等
猜你喜欢
  • 2017-08-03
  • 1970-01-01
  • 2015-03-26
  • 1970-01-01
  • 2016-05-21
  • 2016-09-18
  • 2018-05-12
  • 2016-07-04
  • 1970-01-01
相关资源
最近更新 更多