同步

维基百科,自由的百科全书

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

同步,可以理解为在通信时、函数调用时、协议栈的相邻层协议交互时等场景下,发信方与收信方、主调与被调等双方的状态是否能及时保持状态一致。如果一方完成一个动作后,另一方立即就修改了自己的状态,就是同步。而异步,是指调用方发出请求就立即返回,请求甚至可能还没到达接收方,比如说放到了某个缓冲区中,等待对方取走或者第三方转交;而调用结果是通过接收方主动推送,或调用方轮询来得到。

同步还可以理解为:发出一个调用时,在没有得到结果之前,该调用就不返回;一旦调用返回,就得到返回值。换句话说,就是由调用者主动等待这个调用的结果。而异步则是相反,调用在发出之后,这个调用就直接返回了,所以没有返回结果。当一个异步过程调用发出后,调用者不会立刻得到结果。而是在调用发出后,被调用者通过状态、通知或通过回调函数,让调用者能响应结果。

对于非阻塞情形,同步非阻塞是观察者定期主动的去查看目标对象状态;异步非阻塞是目标对象状态改变后去通知观察者做出相应处理。

參見