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...