RxJava 2.0中的Observable和Flowable有什么区别?

时间:2016-12-03 12:17:45

标签: java rx-java

Observable和Flowable接口似乎完全相同。为什么Flowable是在RxJava 2.0中引入的?我什么时候应该使用Flowable over Observable?

1 个答案:

答案 0 :(得分:33)

the documentation中所述:

  

关于在RxJava 0.x中引入背压的一点遗憾是   而不是具有单独的基础反应类,Observable   本身就是改装了。背压的主要问题是很多   热门资源,例如UI事件,无法合理地反压力   导致意外MissingBackpressureException(即初学者没有   期待他们。)

     

我们试图通过拥有来补救2.x中的这种情况   io.reactivex.Observable非背压和新的   io.reactivex.Flowable是启用背压的基础反应类。

如果您的项目随着时间的推移相对较少(<1000)和/或没有风险生产者过度消费消费者并因此导致OOM,请使用Observable

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

<强>背压 如果你有一个可观察到的物品如此之快以至于消费者无法跟上流量导致存在已发射但未消耗的物品。

背景压力策略处理的是由观察者发出但未被订阅者消费的未消耗物品如何被管理和控制。

Ref link