同步、異步,阻塞、非阻塞

        經常遇到這幾個詞,對它們的概念以及相互之間的關係總是模糊,今天在網上找到一篇介紹得非常清楚的博文,記錄一下,希望下回不要再弄混淆。

原文:http://blog.csdn.net/historyasamirror/archive/2009/06/15/4270633.aspx

         http://blog.csdn.net/historyasamirror/archive/2010/07/31/5778378.aspx

        所謂的同步和異步,在這裏指的application和kernel之間的交互方式。如果application不需要等待 kernel的迴應,那麼它就是異步的。如果application提交完IO請求後,需要等待“回執”,那麼它就是同步的。
        而阻塞和非阻塞,指的是application是否等待IO操作的完成。如果application必須等到IO操作實際完成以後再執行下面的操作,那麼它是阻塞的。反之,如果不等待IO操作的完成就開始執行其它操作,那麼它是非阻塞的。

        異步阻塞IO和同步阻塞IO是一樣的,應用程序都是一直等到IO操作成功之後(數據已經被寫入或者讀取),纔開始進行下面的工作。異步阻塞IO的好處在於一個select函數可以爲多個描述符提供通知,提高了併發性

發佈了22 篇原創文章 · 獲贊 4 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章