select poll epoll學習筆記

2021-07-27 17:11:50 字數 515 閱讀 2720

io多路復用,網路程式設計。

io模型:

阻塞式io模型;

非阻塞式io模型,需要輪詢核心,較少使用;

io復用模型,阻塞於select;

訊號驅動式io模型:核心通知使用者程序何時可以啟動乙個io操作;

非同步io模型:核心通知使用者程序操作何時完成。

posix標準:可移植作業系統介面,ieee為各種在unix作業系統上執行的軟體制定的一系列api標準的總稱。

同步io模型:導致請求程序阻塞,直到io操作完成,包含阻塞式io,非阻塞式io,io復用,訊號驅動式io。

非同步io模型:不導致請求程序阻塞非同步io。

select:

缺點總結:

每次呼叫select,都需要將fd集合從使用者態拷貝到核心態,這個開銷在fd很多時會很大;

核心需要遍歷select傳遞的fd集合,這個開銷在fd很多時也很大;

select支援的檔案描述符數量有限,預設是1024。

poll(輪詢):

epoll:

select poll epoll事件驅動

一直用select,沒有使用poll和epoll,近來需要使用epoll。以前面試時,有人問過我,我也簡單作答。現在寫一下我的理解。三者區別 select 監聽的檔案描述符有限制,linux系統預設是1024 poll 和select差不多,比select優越的地方是監聽的檔案描述符個數可以不限 e...

select poll epoll模型對比

select poll epoll模型對比 先說select 1.socket數量限制 該模式可操作的socket數由fd setsize決定,核心預設32 32 1024.2.操作限制 通過遍歷fd setsize個socket來完成排程,不管哪個socket是活躍的,都遍歷一遍.後說poll 1...

I O復用 select poll epoll區別

select 和poll的區別 select select的觸發方式是水平觸發 lt 應用程式如果沒有完成對乙個已經就緒的檔案描述符進行io操作,那麼之後每次select呼叫還是會將這些檔案描述符通知程序。建立陣列,儲存描述符 一次while 要做的事 清空集合fd zero 遍歷陣列,將fd寫入f...