私は新しい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
私がプレーンを使用できるのか気にすべきなObservable
のbuffer
ですか?それとも反対側からbackpressure
、消費の管理と処理に有利な点は何ですか?