首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >可观察的vs可流动的rxJava2

可观察的vs可流动的rxJava2
EN

Stack Overflow用户
提问于 2016-10-30 04:19:21
回答 1查看 47.8K关注 0票数 146

我一直在寻找新的rx java2,我不太确定我是否已经理解了backpressure的想法……

我知道我们有不支持backpressureObservable和有backpressure支持的Flowable

因此,基于示例,假设我有带有intervalflowable

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

这将在大约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
                }
            });

这根本不会崩溃,即使我延迟了一些时间,它仍然可以工作。为了让Flowable工作,假设我放入了onBackpressureDrop操作符,crash消失了,但也不是所有的值都会被发出。

因此,我目前在脑海中找不到答案的基本问题是,为什么我要关心backpressure,当我可以使用普通的Observable时,仍然可以在不管理buffer的情况下接收所有值?或者从另一个角度来看,在管理和处理消费方面,backpressure给我带来了什么好处?

EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40323307

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档