RxJava 理解:背壓

RxJava GitHub 描述:

當數據流通過異步發送,每一步用不同的速度發佈不同的東西。爲了避免壓垮某一步,經常需要增加 buffer 或是篩選、丟棄數據,這就是背壓,一種控制數據流的形式,讓下游可以表達自己可接受的數量。這可以限制數據流的內存使用。
在 RxJava 中,Flowable 支持背壓, Observable 不支持背壓。

知乎上的問答:

Backpressure 指的是在 Buffer 有上限的系統中,Buffer 溢出的現象;它的應對措施只有一個:丟棄新事件。

總結:

  • 背壓是一種現象,即 buffer 溢出。

  • 在 RxJava 中,Flowable 支持背壓的處理, Observable 不支持背壓的處理。

  • Flowable 如何處理:

    在下游表達過自己的限度後(Subscription.request),上游才能開始發佈。這樣就不會溢出。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章