我一直在寻找新的rx java 2,但我不确定我是否已经明白了这个主意backpressure
...
我知道我们所拥有的Observable
并没有backpressure
支持Flowable
。
因此,基于例如,可以说我有flowable
有interval
:
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
运算符,崩溃已经消失了,但是并不是所有值都被发出。
因此,我目前在脑海中找不到答案的基本问题是,为什么我应该关心backpressure
何时可以使用Plain Observable
仍会接收所有值而无需管理buffer
?或者,也许从另一方面来看,backpressure
我有什么优势可以帮助我管理和处理消费?