特にこのwikiを読んで、リアクティブバックプレッシャー処理の問題に慣れようとしています: https ://github.com/ReactiveX/RxJava/wiki/Backpressure
バッファ パラグラフには、より複雑なサンプル コードがあります。
// we have to multicast the original bursty Observable so we can use it
// both as our source and as the source for our buffer closing selector:
Observable<Integer> burstyMulticast = bursty.publish().refCount();
// burstyDebounced will be our buffer closing selector:
Observable<Integer> burstyDebounced = burstMulticast.debounce(10, TimeUnit.MILLISECONDS);
// and this, finally, is the Observable of buffers we're interested in:
Observable<List<Integer>> burstyBuffered = burstyMulticast.buffer(burstyDebounced);
私の理解が正しければ、バッファー オペレーター用にデバウンスされた信号ストリームを生成することで、バースト ソース ストリームを効果的にデバウンスしています。
しかし、なぜここで publish 演算子と refcount 演算子を使用する必要があるのでしょうか? それらを単にドロップすると、どのような問題が発生しますか? RxJava Observables はデフォルトでマルチキャストに対応していませんか?