I/O模型

2020-01-01  本文已影响0人  AC编程

一、I/O介绍

I/O 可以分为网络IO和磁盘IO,网络IO本质是socket读取。
每次IO,都要经历两个阶段:

二、I/O模型

2.1 同步/异步

同步/异步 关注的是消息通信机制。

2.2 阻塞/非阻塞

阻塞/非阻塞 关注调用者在等待结果返回之前所处的状态

2.3 常用I/O模型

阻塞型、非阻塞型、复用型、信号驱动型、异步。

三、I/O多路复用模型

多个连接共用一个等待机制,该模型会阻塞进程,但是进程是阻塞在select或者poll这两个系统调用上,而不是阻塞在真正的IO操作上。

用户首先将需要进行IO操作添加到select中,继续执行做其他的工作(异步),同时等待select系统调用返回。当数据到达时,IO被激活,select函数返回。用户线程正式发起read请求,读取数据并继续执行。

IO多路复用是最常使用的IO模型,但是其异步程度还不够“彻底”,因它使用了会阻塞线程的select系统调用。因此IO多路复用只能称为异步阻塞IO模型,而非真正的异步IO。

参考资料

上一篇 下一篇

猜你喜欢

热点阅读