日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

IO复用

發(fā)布時間:2025/3/15 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IO复用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

同步:發(fā)出一個功能調(diào)用時,在沒得到結果之前,該調(diào)用就不會返回

異步:當一個異步調(diào)用發(fā)出以后,調(diào)用者不會立刻得到結果,實際處理這個調(diào)用的部件是在調(diào)用發(fā)出之后,通過狀態(tài)通知調(diào)用者。

同步異步他們是消息通知機制

阻塞和非阻塞,他們是程序在等待消息時的狀態(tài)。

阻塞:在調(diào)用結果返回之前 ,當前線程會被掛起,函數(shù)只有在得到結果之后才會返回;

非阻塞:指不能立即得到結果之前,該函數(shù)不會阻塞當前線程,而是立即返回。

阻塞I/O模型:

應用程序調(diào)用一個IO函數(shù),導致應用程序阻塞,等待數(shù)據(jù)準備好。 如果數(shù)據(jù)沒有準備好,一直等待….數(shù)據(jù)準備好了,從內(nèi)核拷貝到用戶空間,IO函數(shù)返回成功指示。

非阻塞I/O模型

i/O復用模型:

簡介:主要是select和epoll;對一個IO端口,兩次調(diào)用,兩次返回,比阻塞IO并沒有什么優(yōu)越性;關鍵是能實現(xiàn)同時對多個IO端口進行監(jiān)聽;

/O復用模型會用到select、poll、epoll函數(shù),這幾個函數(shù)也會使進程阻塞,但是和阻塞I/O所不同的的,這兩個函數(shù)可以同時阻塞多個I/O操作。而且可以同時對多個讀操作,多個寫操作的I/O函數(shù)進行檢測,直到有數(shù)據(jù)可讀或可寫時,才真正調(diào)用I/O操作函數(shù)。

select模式

首先創(chuàng)建了事件的描述符集合,,對于一個事件,關注其上面的讀事件,寫事件,異常事件,所以要創(chuàng)建三類事件的描述符,分別用來收集事件的描述符,寫事件的描述符,調(diào)用select()函數(shù),等待事情發(fā)生,然后輪訓所有事件的描述符的每個描述符,檢查是否有事件的發(fā)生,如果有就處理,

poll方式

和select方式相同,都是創(chuàng)建一個描述符的集合,再去等待事件的發(fā)生,然后再去輪詢描述符的集合,檢查有沒有事件的發(fā)生。
區(qū)別在于:select庫需要為讀事件,寫事件,異常事件分別創(chuàng)建一個描述符的集合,再最后輪詢的時候需要輪詢?nèi)齻€集合,而poll庫只需要創(chuàng)建一個集合,再每個描述符對應的結構上分別設置讀事件,寫事件,或異常事件,最后輪訓的時候,可以同時檢查這三個事件的是否發(fā)生。
他們的處理方式都是創(chuàng)建了一個待處理事件的列表,然后把這個列表發(fā)給內(nèi)核,返回的時候,再去輪詢檢查這個列表,以判斷是否有事情發(fā)生,效率低下。
比較好的做法就是把描述符列表的權限交給內(nèi)核負責,一旦有事情發(fā)生,內(nèi)核會把發(fā)生事件的描述符通知給進程,這樣就避免了輪詢整個描述符列表。

epoll方式

通過相關的調(diào)用,通知內(nèi)核創(chuàng)建了一個描述符的列表,然后給這些描述符設置所關注的事件,并把它添加到內(nèi)核的事件列表中去,完成設置以后,epoll就開始等待內(nèi)核通知事件了,某一事件發(fā)生以后,內(nèi)核就將發(fā)生事件的描述符上報給epoll庫,得知事件列表的epoll庫,就開始進行事件的處理了。
epoll有兩種模式:水平觸發(fā)和邊緣觸發(fā)
水平觸發(fā):內(nèi)核通知進程來讀取數(shù)據(jù),進程沒來讀取數(shù)據(jù),內(nèi)核需要一次一次通知進程
邊緣觸發(fā):內(nèi)核只通知一次讓進程來讀取數(shù)據(jù),進程可以在超時時間內(nèi)隨時來讀取數(shù)據(jù)。

轉載于:https://www.cnblogs.com/hanfei-1005/p/5685118.html

新人創(chuàng)作打卡挑戰(zhàn)賽發(fā)博客就能抽獎!定制產(chǎn)品紅包拿不停!

總結

以上是生活随笔為你收集整理的IO复用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。