240 發(fā)簡信
IP屬地:安徽
  • 1. 使用 sample 操作符的確定文中已經(jīng)提到酝掩,會(huì)丟失部分事件;
    2. 使用 sleep 延時(shí)的操作也并不完美眷柔,下游處理過慢(超過 sleep 時(shí)間)時(shí)依然后丟失事件期虾。
    3. RxJava1.x 中解決 BackPressure 的最優(yōu)雅方式應(yīng)該是使用 request(long n) 方法。具體如下:

  • rxjava2.x的Observable是不存在背壓的概念的闯割,首先博主都沒有完全理解什么是背壓彻消,背壓是下游控制上游流速的一種手段。在rxjava1.x的時(shí)代宙拉,上游會(huì)給下游set一個(gè)producer宾尚,下游通過producer向上游請(qǐng)求n個(gè)數(shù)據(jù),這樣上游就有記錄下游請(qǐng)求了多少個(gè)數(shù)據(jù)谢澈,然后下游請(qǐng)求多少個(gè)上游就給多少個(gè)煌贴,這個(gè)就是背壓。一般來講锥忿,每個(gè)節(jié)點(diǎn)都有緩存牛郑,比如說緩存的大小是64,這個(gè)時(shí)候下游可以一次性向上游request 64個(gè)數(shù)據(jù)敬鬓。rxjava1.x的有些操作符不支持背壓淹朋,也就是說這些操作符不會(huì)給下游set一個(gè)producer,也就是上游根本不理會(huì)下游的請(qǐng)求钉答,一直向下游丟數(shù)據(jù)础芍,如果下游的緩存爆了,那么下游就會(huì)拋出MissingBackpressureException数尿,也就是背壓失效了仑性。在rxjava2.x時(shí)代,上述的背壓邏輯全部挪到Flowable里了右蹦,所以說Flowable支持背壓诊杆。而2.x時(shí)代的Observable是沒有背壓的概念的歼捐,Observable如果來不及消費(fèi)會(huì)死命的緩存直到OOM,所以rxjava2.x的官方文檔里面有講晨汹,大數(shù)據(jù)流用Flowable豹储,小數(shù)據(jù)流用Observable

亚洲A日韩AV无卡,小受高潮白浆痉挛av免费观看,成人AV无码久久久久不卡网站,国产AV日韩精品