rxjava2.x的Observable是不存在背壓的概念的,首先博主都沒有完全理解什么是背壓,背壓是下游控制上游流速的一種手段。在rxjava1.x的時代,上游會給下游set一個producer,下游通過producer向上游請求n個數據,這樣上游就有記錄下游請求了多少個數據,然后下游請求多少個上游就給多少個,這個就是背壓。一般來講,每個節點都有緩存,比如說緩存的大小是64,這個時候下游可以一次性向上游request 64個數據。rxjava1.x的有些操作符不支持背壓,也就是說這些操作符不會給下游set一個producer,也就是上游根本不理會下游的請求,一直向下游丟數據,如果下游的緩存爆了,那么下游就會拋出MissingBackpressureException,也就是背壓失效了。在rxjava2.x時代,上述的背壓邏輯全部挪到Flowable里了,所以說Flowable支持背壓。而2.x時代的Observable是沒有背壓的概念的,Observable如果來不及消費會死命的緩存直到OOM,所以rxjava2.x的官方文檔里面有講,大數據流用Flowable,小數據流用Observable
給初學者的RxJava2.0教程(五)Outline [TOC] 前言 大家喜聞樂見的Backpressure來啦. 這一節中我們將來學習Backpressure. 我看好多吃瓜群眾早已坐不住了, 別急, 我們先...