Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1255238
  • 博文数量: 404
  • 博客积分: 10011
  • 博客等级: 上将
  • 技术积分: 5382
  • 用 户 组: 普通用户
  • 注册时间: 2008-09-03 16:29
文章存档

2010年(40)

2009年(140)

2008年(224)

我的朋友

分类: LINUX

2008-09-27 17:55:18

18.read和aio_read()有什么区别?同步和异步有什么不同?

在linux 设备驱动中,存在read和aio_read两个函数,read是同步的,aio_read()是异步的,在使用这两个函数时,有什么区别呢?请详细的介绍一下,感谢之至。

我们假设有这样一个澡堂,每次只能供一个洗澡。(同步)阻塞I/O意味着,当B1去洗澡时若发现A正在洗澡,则B1开始等待(最好是边等边睡觉,这样不消耗CPU资源),直到A洗完后他被唤醒,之后他开始洗澡;(同步)非阻塞I/O意味着,当B2去洗澡时若发现A正在洗澡,B2会不断polling,一旦polling的结果显示可读写,再读写,此后的读写不会被阻塞住;而异步I/O则意味着,B3根本就不用去澡堂,他一直忙自己的事情,一旦澡堂为空,工作人员就自动打电话通知他:“B3处长,澡堂空了,来洗澡吧”。

阅读(625) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~