IO模型

      IO的方式有阻塞IO、非阻塞IO模型、IO複用、信號驅動、異步IO等。

 

1、阻塞IO模型

       阻塞IO是最通用的IO類型,使用這種模型進行數據接收的時候,在數據沒有到之前程序會一直等待。內核會一直阻塞該請求直到有數據到來才返回。

 

2、非阻塞IO模型

      當把套接字設置成非阻塞的IO,則對每次請求,內核都不會阻塞,會立即返回;當沒有數據的時候,會返回一個錯誤。

 

3、IO複用

      使用IO複用模型可以在等待的時候加入超時的時間,當超時時間沒有到達的時候與阻塞的情況一致,而當超時時間到達仍然沒有數據接收到,系統會返回,不再等待。

 

4、信號驅動IO模型

      信號驅動的IO在進程開始的時候註冊一個信號處理的回調函數,進程繼續執行,當信號發生時,即有了IO的時間,這裏即有數據到來,利用註冊的回調函數將到來的函數用recvfrom()接收。

 

5、異步IO模型

      異步IO與前面的信號驅動IO相似,其區別在於信號驅動IO當數據到來的時候,使用信號通知註冊的信號處理函數,而異步IO則在數據複製完成的時候才發送信號通知註冊的信號處理函數,而異步IO則在數據複製完成的時候才發送信號通知註冊的信號處理函數。

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