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

2022-09-01 05:59:30

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


答案 1

文档中所述:

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

我们尝试在2.x中通过非背压和新的启用背压的基本反应类来纠正这种情况。io.reactivex.Observableio.reactivex.Flowable

在一段时间内,您的商品相对较少(<1000)和/或生产者过度涌入消费者并因此导致OOM的风险时使用。Observable

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


背压当你有一个可观察量,它发出的物品如此之快,以至于消费者无法跟上导致排放但未消费物品存在的流动。

如何管理和控制由可观察量发出但未由订阅者消费的未消费项目是背压策略所处理的。

参考链接


答案 2

推荐