理解一下5种IO模型、阻塞IO和非阻塞IO、同步IO和异步IO-腾讯云开发者社区-腾讯云
这篇博客对5种IO模型的介绍非常通俗易懂,下面是我个人简单粗暴的理解。
一、基本概念的个人理解
阻塞I/O:执行单元被挂起,直到设备就绪。
非阻塞I/O:无论设备是否就绪,都会直接返回结果。
同步I/O:执行单元主动在就绪时进行数据拷贝。
异步I/O:内核在完成数据拷贝后,主动通知执行单元。
I/O复用:一个执行单元同时处理多个设备事件。(I/O复用时针对多个文件的管理技术,而上述阻塞/非阻塞、同步/异步是针对单个文件的读写机制)
二、组合概念的个人理解
同步阻塞I/O:执行单元主动查询设备是否就绪,若未就绪,则执行单元被挂起,直至设备就绪。
同步非阻塞I/O:执行单元主动查询设备是否就绪,若未就绪,直接返回结果。
异步阻塞I/O:若设备未就绪,执行单元被挂起,直至内核完成数据拷贝,通知执行单元就绪。(严格意义上这种IO模型应该不存在才对,没有意义)
异步非阻塞I/O:不论设备是否就绪,执行单元都一边处理其他工作,直到设备通知。

被折叠的 条评论
为什么被折叠?



