常见IO模型

来源:互联网 发布:sas数据分析大赛 编辑:程序博客网 时间:2024/06/06 04:30

阻塞IO模型

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


非阻塞IO

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


IO复用

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


信号驱动IO


信号驱动

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


异步IO

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

0 0
原创粉丝点击