今天我们来进行架构探险:从零开始写分布式服务框架,你能学会吗?(11)

◎同步: 所谓同步 , 就是在发出一个功能调用时 , 在没有得到结果之前 , 该调用就不返回 。

◎异步: 异步的概念和同步相对 。 当一个异步过程调用发出后 , 调用者不会立刻得到结果 , 通过回调等措施来处理这个调用 。

Linux下实现了5种I/O模型 。

(1)阻塞I/O模型:默认情况下 , 所有的文件操作都是阻塞的 。 在进程空间中调用reevfrom , 其系统调用直到数据包到达且被复制到应用进程的缓冲区中或者发生错误才返回 , 在此期间会一直等待 , 进程在从调用rec/from开始到它返回的整段时间内都是被阻塞的 , 如图6-1所示 。

阻塞I/O模型

(2)非阻塞I/O 模型:进程把一个套接口设置成非阻塞是在通知内核 。 当所请求的I/O操作不能满足要求的时候 , 不把本进程投入睡眠 , 而是返回一个错误 。 也就是说当数据没有到达时并不等待 , 而是以一个错误返回 , 如图6-2所示 。

推荐阅读