IO中同步、异步与阻塞、非阻塞的区别

一、同步与异步

同步异步关注的点在于消息通信的机制。

举例:

同步:我去书店买书,老板说等一等他需要去找书,而我在这里等,那么我整个买书的流程就属于同步行为。

异步:我去书店跟老板说我要买书,我要什么书,老板去找,找到了书打电话给我,而我在老板找书的过程中去做其他事情,而不是在书店等待,那么我整个买书的流程就是异步、

同步异步关注的是我采用什么样的方式买书,关注的是方式。

二、阻塞与非阻塞

阻塞与非阻塞关注的是程序在等待结果的时候本身的状态。

举例:

阻塞:我去书店买书,老板说他要找下,我在书店里等,阻塞非阻塞关注的就是在老板去找书的过程中我在等待,也就是此时我的状态是在等待状态。

非阻塞:我去书店买书,老板说他找下,我说找完通知我下,然后我去干别的事了,没有在等老板找书,也就是说我本人没有在等待老板找书。

所以阻塞非阻塞关注的是调用者(例子中的我)在等待结果的时候自身的状态。

原文地址:https://www.cnblogs.com/coldridgeValley/p/5449517.html