同步与异步描述的是被调用者的 。
如A调用B:
如果是同步 ,B在接到A的调用后 ,会立即执行要做的事 。A的本次调用可以得到 结果 。如果是异步 ,B在接到A的调用后 ,不保证会立即执行要做的事 ,但是保证会去 做 ,B在做好了之后会通知A 。A的本次调用得不到结果 ,但是B执行完之后会通知 A 。
同步 ,异步 ,是描述被调用方的 。
阻塞、非阻塞 ,是描述调用方的 。
同步不一定阻塞 ,异步也不一定非阻塞 。没有必然关系 。
举个简单的例子 ,老张烧水 。 1 老张把水壶放到火上 ,一直在水壶旁等着水 开 。(同步阻塞) 2 老张把水壶放到火上 ,去客厅看电视 ,时不时去厨房看看 水开没有 。(同步非阻塞) 3 老张把响水壶放到火上 ,一直在水壶旁等着水 开 。(异步阻塞) 4 老张把响水壶放到火上 ,去客厅看电视 ,水壶响之前不再 去看它了 ,响了再去拿壶 。(异步非阻塞)1和2的区别是 ,调用方在得到返回之前所做的事情不一行 。 1和3的区别是 ,被 调用方对于烧水的处理不一样 。
更多内容 公众号:天堂比不过家乡
,别忘了 赞助关注哦!