常见IO模型浅析

想写一篇介绍IO模型的文章,先挂在这儿提醒自己,有时间补上

主要借鉴文章http://blog.csdn.net/baixiaoshi/article/details/48708347

 

其实IO模型主要有几大类:

1.阻塞IO

2.非阻塞IO

3.I/O复用

4.信号驱动IO

5.异步IO

 

其实这么分有时候容易造成一些误解,因为这几大类IO中有的是相互包含的,相互之间并非不相关。当然了,一般认为前四种IO都是同步IO(其实不一定,比如非阻塞就应该和异步搭配,而非阻塞和同步搭配的话是一种很蠢的行为,比如UNP v1中举的非阻塞IO例子就是非阻塞同步,这样非阻塞的优势并不能体现出来),与第五种相斥。

这里先帮大家区分同步和异步的概念:

同步和异步的概念描述的是用户线程与内核的交互方式:同步是指用户线程发起IO请求后需要等待或者轮询内核IO操作完成后才能继续执行;而异步是指用户线程发起IO请求后仍继续执行,当内核IO操作完成后会通知用户线程,或者调用用户线程注册的回调函数。

阻塞和非阻塞的概念描述的是用户线程调用内核IO操作的方式:阻塞是指IO操作需要彻底完成后才返回到用户空间;而非阻塞是指IO操作被调用后立即返回给用户一个状态值,无需等到IO操作彻底完成。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值