[基礎]同步消息和異步消息傳遞的區別?
在系統交互時候選擇同步還是異步有時候很讓人困擾,希望通過閱讀這篇文章可以幫助更好的理解同步與異步。
同步與異步消息的區別
1、同步消息
同步消息傳遞涉及到等待服務器響應消息的客戶端。消息可以雙向地向兩個方向流動。本質上,這意味著同步消息傳遞是雙向通信。即發送方向接收方發送消息,接收方接收此消息並回復發送方。發送者在收到接收者的回復之前不會發送另一條消息。
2、異步消息
異步消息傳遞涉及不等待來自服務器的消息的客戶端。事件用於從服務器觸發消息。因此,即使客戶機被關閉,消息傳遞也將成功完成。異步消息傳遞意味著,它是單向通信的一種方式,而交流的流程是單向的。
如果這還不好理解,那繼續往下讀...
異步:比如A是字符集第一個字母,唯一可行的方法就是向Z走,這意味著是單向通信。
同步:比如同步是從字母S開始,可能是朝向可能是A或Z,這意味著是雙向通信。
同步和異步消息傳遞的有點和缺點
異步消息傳遞有一些關鍵優勢。它們能夠提供靈活性並提供更高的可用性——系統對信息采取行動的壓力較小,或者以某種方式立即做出響應。另外,一個系統被關閉不會影響另一個系統。例如,電子郵件——你可以發送數千封電子郵件給你的朋友,而不需要她回復你。
異步的缺點是它們缺乏直接性。沒有直接的相互作用。考慮一下與你的朋友在即時通訊或電話上聊天——除非你的朋友及時回復你,否則這不是聊天或談話。
異步消息傳遞允許更多的並行性。由於進程不阻塞,所以它可以在消息傳輸時進行一些計算。
異步消息傳遞引入了幾個問題。如果消息無法傳遞會發生什麽?如果消息在傳輸中丟失了怎麽辦?
與異步消息傳遞相關的另一個問題與緩沖有關。如果在操作系統管理的空間中對消息進行異步處理,則進程可能會通過大量消息向數據庫中寫入數據。
哪個更好——同步還是異步?
這個問題沒有答案。
如果感到對您有幫助沒準兒你就會贊賞,iOS 專用贊賞通道:
[基礎]同步消息和異步消息傳遞的區別?