阻塞IO模型
阻塞IO是最通用的IO,使用这种IO接受数据时,在数据没有到来之前程序会一直等待。
非阻塞IO
当把套接字设置成非阻塞IO时,则对于每次请求,内核都不会阻塞,会立即返回。当没有数据时,会返回一个错误。
IO复用
使用IO复用的可以在等待的时候假如超时时间,当超时时间没有到达的时候情况与阻塞IO是一样的,当时间到达,但是没有数据是,系统会自动返回,不在等待。select()函数就是按照一定的时间轮询。
信号驱动IO
信号驱动
信号驱动IO在进程开始时注册一个信号处理的回调函数,进行继续执行,当信号发生是,这里就有数据到来,利用注册的回到函数降到来的数据收到。
异步IO
异步IO与前面的信号驱动IO类似,其区别在于信号驱动IO当数据到来时,是用信号通知注册的信号处理函数,异步IO则在数据复制完成之后才发送信号通知注册的信号处理函数。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/susser43/article/details/47155973