分类: LINUX
2011-12-31 18:31:29
from: 阻塞,非阻塞IO和同步,异步IOhttp://my.oschina.net/shawnChen/blog/11508
在看ACE的过程中,难免对socket的一些特别的api有点质疑,于是不得不求助于unix网络编程,在看的过程中
终于懂得了阻塞,非阻塞和同步,异步的区别,以前认为非阻塞就是一中异步模式呢,哎,看来内功真的不行,太菜鸟了,
下面开始讲解一下他们的真正含义:
Unix下的五种I/O模型是:
阻塞I/O
非阻塞I/O
I/O复用(select 和poll)
信号驱动I/O
异步I/O
阻塞I/O模型图:
非阻塞IO模型图解:
IO复用模型图解:
信号驱动IO图解:
异步IO模型图解:
同步IO引起进程阻塞,直至IO操作完成。
异步IO不会引起进程阻塞。
IO复用是先通过select调用阻塞。
好了,上图已经解释的很清楚了,再来一张书中的综合图解:
以上这些应该解释的足够清楚了吧 ~~~