浏览 4844 次
锁定老帖子 主题:[思考] 也谈同步异步I/O
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-09-17
网上有许多I/O模型的相关文章, 主要涉及四相概念: 同步(synchronous), 异步(asynchronous), 阻塞(blocking) 和 非阻塞(non-blocking). 有些文章将这四个作了两两组合, 于是有了: 异步阻塞 和 异步非阻塞 , 可以很明确地说, 这完全是牵强之理解. 无论是 <Unix网络编程>一书中所列的I/O模式, 还是POSIX标准, 都没有提这两个概念. 异步就是异步! 只有同步时才有阻塞和非阻塞之分. 详见我的blog文章:
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-09-18
欢迎大家拍砖!
|
|
返回顶楼 | |
发表时间:2011-09-19
引用 按照《Unix网络编程》的划分,IO模型可以分为:阻塞IO、非阻塞IO、IO复用、信号驱动IO和异步IO,按照POSIX标准来划分只分为两类:同步IO和异步IO。
http://www.iteye.com/topic/472333 你们俩应该去PK了,,没有看过这本书,不发表神马见解:) |
|
返回顶楼 | |
发表时间:2011-09-19
hobitton 写道 引用 按照《Unix网络编程》的划分,IO模型可以分为:阻塞IO、非阻塞IO、IO复用、信号驱动IO和异步IO,按照POSIX标准来划分只分为两类:同步IO和异步IO。
http://www.iteye.com/topic/472333 你们俩应该去PK了,,没有看过这本书,不发表神马见解:) 呵呵, 不用PK, 你提的那篇文章是和我的观点没有任何冲突. 我注意到那是一个实战性的文章, 而且在2009年(Java7还在beta时) 写的, 所以比较可贵! 只是我疑问: Java NIO2.0 是否能在Linux2.6 epoll上有飞跃性的进步. 毕竟Java6已经用过 epoll 了. 这个需要用实际的测试来说话! |
|
返回顶楼 | |
发表时间:2011-09-19
呵呵,看错了,还以为你写的是没有:阻塞IO,非阻塞IO,同步异步IO这种分类呢:)
6,7上面主要区别是新增的对文件的异步操作吧。原来貌似只是在socket上面。 |
|
返回顶楼 | |
发表时间:2011-09-19
楼主说的不错!
不过异步IO也并非是最好的IO模型,这还要看你从什么角度出发。 试想一下,底层的硬件(DMA)已经支持异步IO了,为什么操作系统还要将其变为同步IO? 我想应该是基于编程简单的方面来考虑的。 关于几个IO模型,还可以参考:http://www.zavakid.com/96 |
|
返回顶楼 | |