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