论坛首页 Java企业应用论坛

[思考] 也谈同步异步I/O

浏览 4824 次
精华帖 (0) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-09-17  

网上有许多I/O模型的相关文章, 主要涉及四相概念: 同步(synchronous), 异步(asynchronous), 阻塞(blocking) 和 非阻塞(non-blocking). 有些文章将这四个作了两两组合, 于是有了: 异步阻塞 和   异步非阻塞 , 可以很明确地说, 这完全是牵强之理解. 无论是 <Unix网络编程>一书中所列的I/O模式, 还是POSIX标准, 都没有提这两个概念. 异步就是异步! 只有同步时才有阻塞和非阻塞之分. 详见我的blog文章:

 

[思考] 也谈同步异步I/O

 

   发表时间:2011-09-18  
欢迎大家拍砖!
0 请登录后投票
   发表时间:2011-09-19  
引用
按照《Unix网络编程》的划分,IO模型可以分为:阻塞IO、非阻塞IO、IO复用、信号驱动IO和异步IO,按照POSIX标准来划分只分为两类:同步IO和异步IO。

http://www.iteye.com/topic/472333
你们俩应该去PK了,,没有看过这本书,不发表神马见解:)
0 请登录后投票
   发表时间: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 了.

这个需要用实际的测试来说话!
0 请登录后投票
   发表时间:2011-09-19  
呵呵,看错了,还以为你写的是没有:阻塞IO,非阻塞IO,同步异步IO这种分类呢:)

6,7上面主要区别是新增的对文件的异步操作吧。原来貌似只是在socket上面。
0 请登录后投票
   发表时间:2011-09-19  
楼主说的不错!
不过异步IO也并非是最好的IO模型,这还要看你从什么角度出发。
试想一下,底层的硬件(DMA)已经支持异步IO了,为什么操作系统还要将其变为同步IO?
我想应该是基于编程简单的方面来考虑的。

关于几个IO模型,还可以参考:http://www.zavakid.com/96
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics