五種IO模型
五種IO模型
(1)阻塞IO
(2)非阻塞IO
(3)信號驅動
(4)IO多路複用
(5)異步IO
IO分兩步
(1)等待數據
(2)數據搬遷
阻塞IO
在數據準備好前,什麼事情都不做,阻塞在那裏一直等待
非阻塞IO
需要不停的輪詢,詢問數據是否準備好
IO多路轉接(最高效的IO)
設置select/poll/epoll函數去等待,當有事件就緒的時候,纔去調用讀函數去讀事件,完成數據拷貝
異步IO
應用程序自己不去處理,他調用函數以後就立即返回,當內核將數據準備好了以後,進行數據拷貝等一系列工作了以後,通過指定信號去告訴應用程序你交代的事件我已經爲你處理好了
同步IO和異步IO的區別
同步IO是數據等待和數據搬遷都是自己去做。
異步IO是數據等待和數據搬遷都不是自己去做。
阻塞IO和非阻塞IO的區別
阻塞IO在數據沒有準備就緒的時候,什麼事情也不做,一直在等待時間就緒,一旦數據就緒了以後,他纔會將數據從內核拷貝到應用程序
非阻塞IO在數據沒有準備就緒的時候,就立即返回,並且在沒有獲得數據的過程中隔一段時間就去詢問數據是否準備就緒,直到數據準備就緒。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.