同步
外觀
同步(英語:Synchronization),指在一個系統中所發生的事件(event)之間進行協調,在時間上出現一致性與統一化的現象。在系統中進行同步,也被稱為即時(in time)或同步化的(synchronous, in sync)。
同步,可以理解為在通信時、函數調用時、協議棧的相鄰層協議交互時等場景下,發信方與收信方、主調與被調等雙方的狀態是否能及時保持狀態一致。如果一方完成一個動作後,另一方立即就修改了自己的狀態,就是同步。而異步,是指調用方發出請求就立即返回,請求甚至可能還沒到達接收方,比如說放到了某個緩衝區中,等待對方取走或者第三方轉交;而調用結果是通過接收方主動推送,或調用方輪詢來得到。
同步還可以理解為:發出一個調用時,在沒有得到結果之前,該調用就不返回;一旦調用返回,就得到返回值。換句話說,就是由調用者主動等待這個調用的結果。而異步則是相反,調用在發出之後,這個調用就直接返回了,所以沒有返回結果。當一個異步過程調用發出後,調用者不會立刻得到結果。而是在調用發出後,被調用者通過狀態、通知或通過回調函數,讓調用者能響應結果。
對於非阻塞情形,同步非阻塞是觀察者定期主動的去查看目標對象狀態;異步非阻塞是目標對象狀態改變後去通知觀察者做出相應處理。