flutter設(shè)計原理和響應(yīng)式編程 - 草稿

關(guān)系:flutter框架使用響應(yīng)式編程設(shè)計

響應(yīng)式編程:專注于數(shù)據(jù)流和變化傳遞的異步編程范式

數(shù)據(jù)流:由一個發(fā)布者發(fā)布,一個/多個訂閱者消費(fèi)的數(shù)據(jù)元素序列

數(shù)據(jù)流流轉(zhuǎn)方式:1 pull 訂閱者向發(fā)布者索要數(shù)據(jù) 2 push 發(fā)布者向消費(fèi)者主動推送數(shù)據(jù)

數(shù)據(jù)流交互的問題:1 發(fā)布者發(fā)送數(shù)據(jù)快,訂閱者處理數(shù)據(jù)慢 2 發(fā)布者發(fā)送數(shù)據(jù)慢,訂閱者消費(fèi)數(shù)據(jù)快


解決方法:

異步處理,如果是同步,哪個快都會阻塞

1 背壓(發(fā)布快):1.1 損失數(shù)據(jù)? 1.2 緩存數(shù)據(jù)隊列

注:背壓的處理策略和觀察者模式的策略一樣,只是觀察者由訂閱者決定策略,背壓由訂閱者通知發(fā)布者降速,發(fā)布者決定策略。

2 非阻塞:訂閱者無消息處理掛起,切換到其他任務(wù)

響應(yīng)式流:背壓非阻塞異步流處理標(biāo)準(zhǔn)倡議

為什么使用響應(yīng)式:

1 響應(yīng)式流:背壓非阻塞異步流處理標(biāo)準(zhǔn)倡議

2 增強(qiáng)的觀察者和迭代器模式

3 流模型 3.1 訂閱者向發(fā)布者請求N個元素 3.2 發(fā)布者異步向訂閱者發(fā)送M(0<M<=N)個元素

4 pull模型和push模型動態(tài)切換,訂閱者快(push),發(fā)布者快(pull)


flutter數(shù)據(jù)流管理

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容