5种io模式

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了5种io模式相关的知识,希望对你有一定的参考价值。

1)阻塞I/O(blocking I/O)

发起请求,等待数据报准备好,拷贝数据,数据返回指令

应用程序调用一个IO函数,导致应用程序阻塞,等待数据准备好。 如果数据没有准备好,一直等待….数据准备好了,从内核拷贝到用户空间,IO函数返回成功指示。

2)非阻塞I/O (nonblocking I/O)

轮训数据报什么时候准备好,准备好之后阻塞拷贝数据,数据返回指令


3) I/O复用(select 和poll) (I/O multiplexing)

就是应用函数select poll epoll 监听就绪的设备 select就是遍历查询每个设备的就绪状态 如果就绪再返回,接着阻塞拷贝数据

 

4)信号驱动I/O (signal driven I/O (SIGIO))


5)异步I/O (asynchronous I/O (the POSIX aio_functions))

 

首先来讲一下linux的组成,linux的每一个对象都可以称为文件,比如显示器、 打印机、驱动程序等等,对于文件会有一个描述符叫做fd(file description)。

 

这个文章讲的很好 http://blog.csdn.net/jay900323/article/details/18141217/

以上是关于5种io模式的主要内容,如果未能解决你的问题,请参考以下文章

23种设计模式简单总结

这5种思维模式,大牛产品经理都在用

图解九种常见的设计模式

iOS 开发中的几种设计模式

SpringAMQP整合RabbitMQ-五种工作模式Demo

干货iOS开发学习中不易弄清楚的六种开发模式