select
與poll
的區別 1
、io多路復⽤: 1
、概念:
io多路復⽤是指核心⼀旦發現程序指定的⼀個或者多個
io條件準備讀取,它就通知該程序。 2
、優勢:與多程序和多執行緒技術相⽐,
i/o多路復⽤技術的最⼤優勢是系統開銷⼩,系統不必建立程序
/執行緒,也不必維護這些進 程
/執行緒,從⽽⼤⼤減⼩了系統的開銷。 3
、系統:⽬前⽀持
i/o多路復⽤的系統調⽤有
select
,pselect
,poll
,epoll。
2、select
:select
⽬前⼏乎在所有的平台上⽀持,其良好跨平台⽀持也是它的⼀個優點。
select
的⼀個缺點在於單個程序能夠監視的
⽂件描述符的數量存在最⼤限制,在
linux
上⼀般為
1024
,可以通過修改巨集定義甚⾄重新編譯核心的⽅式提公升這⼀限制,但是這樣也
會造成效率的降低。 3
、poll
:它沒有最⼤連線數的限制,原因是它是基於鍊錶來儲存的,但是同樣有⼀個缺點:
a. ⼤量的fd
的陣列被整體複製於⽤戶態和核心位址空間之間,⽽不管這樣的複製是不是有意義。
b. poll
還有⼀個特點是「⽔平觸發」,如果報告了
fd後,沒有被處理,那麼下次
poll
時會再次報告該fd。
多路復用select與poll
華清遠見嵌入式學院 講師。在unix linux中有4中io模型,分別為 1 阻塞io 2 非阻塞io 3 io多路復用 4 訊號驅動io 這幾種io模型,阻塞io是最長用到的,並且操作相對簡單,但是缺點在於效率低下,尤其是在,同時操作多個io的時候,不能隨時的處理各個io操作。而非阻塞io可以解決...
多路復用select與poll
華清遠見嵌入式學院 講師。在unix linux中有4中io模型,分別為 1 阻塞io 2 非阻塞io 3 io多路復用 4 訊號驅動io 這幾種io模型,阻塞io是最長用到的,並且操作相對簡單,但是缺點在於效率低下,尤其是在,同時操作多個io的時候,不能隨時的處理各個io操作。而非阻塞io可以解決...
select和poll的用法
select 函式的作用 系統呼叫select和poll的後端實現,用這兩個系統呼叫來查詢裝置是否可讀寫,或是否處於某種狀態。如果poll為空,則驅動裝置會被認為即可讀又可寫,返回值是乙個狀態掩碼 如何使用select 函式?select 函式的介面主要是建立在一種叫 fd set 型別的基礎上。它...