關(guān)系:flutter框架使用響應(yīng)式編程設(shè)計(jì)
響應(yīng)式編程:專注于數(shù)據(jù)流和變化傳遞的異步編程范式
數(shù)據(jù)流:由一個(gè)發(fā)布者發(fā)布弄痹,一個(gè)/多個(gè)訂閱者消費(fèi)的數(shù)據(jù)元素序列
數(shù)據(jù)流流轉(zhuǎn)方式:1 pull 訂閱者向發(fā)布者索要數(shù)據(jù) 2 push 發(fā)布者向消費(fèi)者主動(dòng)推送數(shù)據(jù)
數(shù)據(jù)流交互的問題:1 發(fā)布者發(fā)送數(shù)據(jù)快,訂閱者處理數(shù)據(jù)慢 2 發(fā)布者發(fā)送數(shù)據(jù)慢昔馋,訂閱者消費(fèi)數(shù)據(jù)快
解決方法:
異步處理接校,如果是同步猛频,哪個(gè)快都會(huì)阻塞
1 背壓(發(fā)布快):1.1 損失數(shù)據(jù)? 1.2 緩存數(shù)據(jù)隊(duì)列
注:背壓的處理策略和觀察者模式的策略一樣,只是觀察者由訂閱者決定策略蛛勉,背壓由訂閱者通知發(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ā)布者請(qǐng)求N個(gè)元素 3.2 發(fā)布者異步向訂閱者發(fā)送M(0<M<=N)個(gè)元素
4 pull模型和push模型動(dòng)態(tài)切換毡熏,訂閱者快(push),發(fā)布者快(pull)
flutter數(shù)據(jù)流管理