1 同步與異步
首先來解釋同步和異步的概念,這兩個概念與消息的通知機制有關。也就是同步與異步主要是從消息通知機制角度來說的。
1.1 概念描述
所謂同步就是一個任務的完成需要依賴另外一個任務時,隻有等待被依賴的任務完成後,依賴的任務才能算完成,這是一種可靠的任務序列
。要麼成功都成功,失敗都失敗,兩個任務的狀态可以保持一緻。
所謂異步是不需要等待被依賴的任務完成,隻是通知被依賴的任務要完成什麼工作,依賴的任務也立即執行,隻要自己完成了整個任務就算完成了
。至于被依賴的任務最終是否真正完成,依賴它的任務無法确定,
是以它是不可靠的任務序列
。
1.2 消息通知
異步的概念和同步相對
。當一個同步調用發出後,
調用者要一直等待傳回消息(結果)通知後
,才能進行後續的執行;當一個異步過程調用發出後,調用者不能立刻得到傳回消息(結果)。
實際處理這個調用的部件在完成後,通過狀态、通知和回調來通知調用者
。
這裡提到執行部件和調用者通過三種途徑傳回結果:
狀态、通知和回調
。使用哪一種通知機制,
依賴于執行部件的實作
,除非執行部件提供多種選擇,
否則不受調用者控制
。
- 如果執行部件用狀态來通知,那麼調用者就需要每隔一定時間檢查一次,效率就很低(有些初學多線程程式設計的人,總喜歡