码迷,mamicode.com
首页 > 其他好文 > 详细

常见IO模型

时间:2015-07-30 21:25:39      阅读:132      评论:0      收藏:0      [点我收藏+]

标签:函数   异步   select   内核   数据   

阻塞IO模型

阻塞IO是最通用的IO,使用这种IO接受数据时,在数据没有到来之前程序会一直等待。


非阻塞IO

当把套接字设置成非阻塞IO时,则对于每次请求,内核都不会阻塞,会立即返回。当没有数据时,会返回一个错误。


IO复用

使用IO复用的可以在等待的时候假如超时时间,当超时时间没有到达的时候情况与阻塞IO是一样的,当时间到达,但是没有数据是,系统会自动返回,不在等待。select()函数就是按照一定的时间轮询。


信号驱动IO


信号驱动

信号驱动IO在进程开始时注册一个信号处理的回调函数,进行继续执行,当信号发生是,这里就有数据到来,利用注册的回到函数降到来的数据收到。


异步IO

异步IO与前面的信号驱动IO类似,其区别在于信号驱动IO当数据到来时,是用信号通知注册的信号处理函数,异步IO则在数据复制完成之后才发送信号通知注册的信号处理函数。

版权声明:本文为博主原创文章,未经博主允许不得转载。

常见IO模型

标签:函数   异步   select   内核   数据   

原文地址:http://blog.csdn.net/susser43/article/details/47155973

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!