相关疑难解决方法(0)

Observable vs Flowable rxJava2

我一直在寻找新的rx java 2,我不太确定我理解了这个想法backpressure......

我知道我们有Observable没有backpressure支持,Flowable而且有它.

因此,基于例如,可以说我有flowableinterval:

        Flowable.interval(1, TimeUnit.MILLISECONDS, Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Consumer<Long>() {
                @Override
                public void accept(Long aLong) throws Exception {
                    // do smth
                }
            });
Run Code Online (Sandbox Code Playgroud)

这将在大约128个值之后崩溃,这很明显我消耗的速度比获取项目慢.

但后来我们也一样 Observable

     Observable.interval(1, TimeUnit.MILLISECONDS, Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Consumer<Long>() {
                @Override
                public void accept(Long aLong) throws Exception {
                    // do smth
                }
            });
Run Code Online (Sandbox Code Playgroud)

这根本不会崩溃,即使我延迟消耗它仍然有效.为了让Flowable工作让我说我放onBackpressureDrop操作员,崩溃已经消失,但并非所有值都被发出.

所以我目前无法找到答案的基本问题是我为什么要关心backpressure何时可以使用普通Observable仍然可以在不管理的情况下获得所有值buffer?或者从另一方面来看,有什么优势backpressure可以帮助我管理和处理消费?

java android rx-java

115
推荐指数
3
解决办法
4万
查看次数

Observable优于Flowable的实际优势是什么?

2.0中的不同之处描述了Observable和之间的区别Flowable.然而,Observable主要是根据与之相比缺乏的特征来描述Flowable.Observable提到的只有一个显着特征:

使用Observable通常比开销更低Flowable.

但即便如此,这似乎与Observable少数元素更有利的建议相矛盾,并且更有可能导致OutOfMemoryError过于严重的任务.这似乎表明Flowable通常更有效率.

另一件令我困惑的事情是,如果Observable对于少于1K元素Flowable的用例是优选的,并且对于具有超过10K元素的用例是优选的,则具有1K和10K元素之间的用例是灰色区域.

是否有更多技术解释ObservableFlowable?之间的差异? 特别是提出了一种实用的启发式方法,用于决定在1K和10K元素之间的灰色区域中使用哪种方法,或者当元素的数量未知或可能改变时.

相关:此问答仅引用文档而无需进一步说明.

rx-java rx-java2

7
推荐指数
1
解决办法
557
查看次数

标签 统计

rx-java ×2

android ×1

java ×1

rx-java2 ×1