同步(英语:Synchronization),指在一个系统中所发生的事件event)之间进行协调,在时间上出现一致性与统一化的现象。在系统中进行同步,也被称为及时in time)或同步化的synchronous, in sync)。

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

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

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

参见 编辑