Chinaunix首页 | 论坛 | 博客
  • 博客访问: 21116
  • 博文数量: 6
  • 博客积分: 477
  • 博客等级: 下士
  • 技术积分: 70
  • 用 户 组: 普通用户
  • 注册时间: 2009-12-28 17:10
文章存档

2010年(1)

2009年(5)

我的朋友
最近访客

分类: LINUX

2009-12-30 15:41:35

   (以下文字只是个人在开发的感悟,如有不正确的地方请不吝指出)
 
   异步IO就是把IO提交给系统,让系统替你做,做完了再用某种方式通知你(通过信号,或者其他异步方式
 
通知,这时候,操作系统已经帮你完成IO操作,具体来说就是你那个作为传入参数的的buffer的指针所指向
 
的空间已经读到了数据或者你的buffer的数据已经写出去了)
 
   非阻塞IO就是你要通过某种方式不定时地向系统询问你是否可以开始做某个IO( 轮询啊 ),当可以开始
 
后,是要自己来完成IO(也就是说还要自己调用一次read来填充buffer或者write来不buffer的数据写出
 
去)
 
   epoll和aio(这里的aio是指linux 2.6内核后提供的aio api)区别:
  
   aio是异步非阻塞的。其实是aio是用线程池实现了异步IO。
  
   epoll在这方面的定义上有点复杂,首先epoll的fd集里面每一个fd都是非阻塞的,但是epoll(还
 
select poll )在调用时阻塞等待fd可用,然后epoll只是一个异步通知机制,只是在fd可用时通知你,并
 
没有做任何IO操作,所以不是传统的异步。
 
 
参考资料:
 
 
阅读(1486) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~