在看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調用阻塞。
好了,上圖已經解釋的很清楚了,再來一張書中的綜合圖解:
以上這些應該解釋的足夠清楚了吧 ~~~