五種IO模型
阿新 • • 發佈:2018-12-11
1、阻塞IO (1)概念:在核心將資料準備好之前,系統呼叫會一直等待。所有的套接字,預設情況都是阻塞方式。 (2)阻塞IO的工作流程: 2、非阻塞IO (1)概念:如果核心還未將資料準備好,系統呼叫仍然會直接返回,並且返回EWOULDBLOCK錯誤碼。 (2)非阻塞的工作流程: 注意:非阻塞IO往往需要程式設計師以迴圈的方式反覆嘗試讀寫檔案描述符,這個過程稱為輪詢。這個過程對CPU來說是較大的浪費,一般只有在特定的場景下才使用。 3、訊號驅動IO (1)概念:核心將資料準備好的時候,使用SIGIO訊號通知應用程式進行IO操作。 (2)訊號驅動IO的工作流程: 4、IO多路轉接 (1)概念:IO多路轉接與阻塞IO相似,不同的是IO多路轉接能夠同時等待多個檔案描述符的就緒狀態。 (2)IO多路轉接的工作流程: