同步(英語:Synchronization),指在一個系統中所發生的事件event)之間進行協調,在時間上出現一致性與統一化的現象。在系統中進行同步,也被稱為即時in time)或同步化的synchronous, in sync)。

同步,可以理解為在通訊時、函數呼叫時、協定棧的相鄰層協定互動時等場景下,發信方與收信方、主調與被調等雙方的狀態是否能及時保持狀態一致。如果一方完成一個動作後,另一方立即就修改了自己的狀態,就是同步。而非同步,是指呼叫方發出請求就立即返回,請求甚至可能還沒到達接收方,比如說放到了某個緩衝區中,等待對方取走或者第三方轉交;而呼叫結果是通過接收方主動推播,或呼叫方輪詢來得到。

同步還可以理解為:發出一個呼叫時,在沒有得到結果之前,該呼叫就不返回;一旦呼叫返回,就得到返回值。換句話說,就是由呼叫者主動等待這個呼叫的結果。而非同步則是相反,呼叫在發出之後,這個呼叫就直接返回了,所以沒有返回結果。當一個非同步過程呼叫發出後,呼叫者不會立刻得到結果。而是在呼叫發出後,被呼叫者通過狀態、通知或通過回呼函數,讓呼叫者能響應結果。

對於非阻塞情形,同步非阻塞是觀察者定期主動的去檢視目標對象狀態;非同步非阻塞是目標對象狀態改變後去通知觀察者做出相應處理。

參見

編輯