算是常見問題了,具體的api就不在這裡贅述,書上網上都有很詳細的解析。
就簡單羅列一下這幾個系統呼叫各自的優缺點吧
select:
優點:1、可移植性強,windows和linux都能用。
2、定時精度是微秒。
缺點:1、每次呼叫需要重複傳入檔案描述符集,需要輪詢所有檔案描述符,大量併發時效率很低。
2、檔案描述符有最大數量限制(可以通過修改標頭檔案中fd_setsize的大小,重新編譯kernel調整)。
poll:
優點:1、不限制檔案描述符數目
缺點:1、定時精度是毫秒。
2、依然是輪詢機制,避免不了複製整個檔案描述符集,大量併發時效率很低。
3、可移植性差,僅限linux。
epoll:
優點:1、不限制檔案描述符數目。
2、回傳代替輪詢,效率極高。
缺點:1、定時精度是毫秒。
2、可移植性差,僅限linux。
select poll epoll學習筆記
io多路復用,網路程式設計。io模型 阻塞式io模型 非阻塞式io模型,需要輪詢核心,較少使用 io復用模型,阻塞於select 訊號驅動式io模型 核心通知使用者程序何時可以啟動乙個io操作 非同步io模型 核心通知使用者程序操作何時完成。posix標準 可移植作業系統介面,ieee為各種在uni...
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...