日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

select,poll,epoll区别面试常问

發(fā)布時(shí)間:2025/6/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 select,poll,epoll区别面试常问 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

select,poll,epoll區(qū)別:

select優(yōu)點(diǎn)

1)select()的可移植性更好,在某些Unix系統(tǒng)上不支持poll()

2)select() 對(duì)于超時(shí)值提供了更好的精度:微秒,而poll是毫秒。

?

select缺點(diǎn)

1) 單個(gè)進(jìn)程可監(jiān)視的fd數(shù)量被限制。

2) 需要維護(hù)一個(gè)用來存放大量fd的數(shù)據(jù)結(jié)構(gòu),這樣會(huì)使得用戶空間和內(nèi)核空間在傳遞該結(jié)構(gòu)時(shí)復(fù)制開銷大。

3) 對(duì)fd進(jìn)行掃描時(shí)是線性掃描。fd劇增后,IO效率較低,因?yàn)槊看握{(diào)用都對(duì)fd進(jìn)行線性掃描遍歷,所以隨著fd的增加會(huì)造成遍歷速度慢的性能問題

4)select() 函數(shù)的超時(shí)參數(shù)在返回時(shí)也是未定義的,考慮到可移植性,每次在超時(shí)之后在下一次進(jìn)入到select之前都需要重新設(shè)置超時(shí)參數(shù)。

poll

poll與select不同,通過一個(gè)pollfd數(shù)組向內(nèi)核傳遞需要關(guān)注的事件,故沒有描述符個(gè)數(shù)的限制, 

pollfd中的events字段和revents分別用于標(biāo)示關(guān)注的事件和發(fā)生的事件,故pollfd數(shù)組只需要被初始化一次。

poll的實(shí)現(xiàn)機(jī)制與select類似,其對(duì)應(yīng)內(nèi)核中的sys_poll,只不過poll向內(nèi)核傳遞pollfd數(shù)組,然后對(duì)pollfd中的每個(gè)描述符進(jìn)行poll,相比處理fdset來說,poll效率更高。 

poll返回后,需要對(duì)pollfd中的每個(gè)元素檢查其revents值,來得指事件是否發(fā)生。

poll優(yōu)點(diǎn)

1)poll() 不要求開發(fā)者計(jì)算最大文件描述符加一的大小。

2)poll() 在應(yīng)付大數(shù)目的文件描述符的時(shí)候相比于select速度更快

3)它沒有最大連接數(shù)的限制,原因是它是基于鏈表來存儲(chǔ)的。

poll缺點(diǎn)

1)大量的fd的數(shù)組被整體復(fù)制于用戶態(tài)和內(nèi)核地址空間之間,而不管這樣的復(fù)制是不是有意義。

2)與select一樣,poll返回后,需要輪詢pollfd來獲取就緒的描述符

epoll

epoll是Linux下多路復(fù)用IO接口select/poll的增強(qiáng)版本。

  它能顯著減少程序在大量并發(fā)連接中只有少量活躍的情況下的系統(tǒng)CPU利用率,因?yàn)樗粫?huì)復(fù)用文件描述符集合來傳遞結(jié)果而迫使開發(fā)者每次等待事件之前都必須重新準(zhǔn)備要被偵聽的文件描述符集合。

  另一點(diǎn)原因就是獲取事件的時(shí)候,它無須遍歷整個(gè)被偵聽的描述符集,只要遍歷那些被內(nèi)核IO事件異步喚醒而加入Ready隊(duì)列的描述符集合就行了。

epoll除了提供select/poll 那種IO事件的電平觸發(fā)(Level Triggered)外,還提供了邊沿觸發(fā)(Edge Triggered),這就使得用戶空間程序有可能緩存IO狀態(tài),減少epoll_wait/epoll_pwait的調(diào)用,提高應(yīng)用程序效率。

底層實(shí)現(xiàn)

epoll在底層實(shí)現(xiàn)了自己的高速緩存區(qū),并且建立了一個(gè)紅黑樹用于存放socket,另外維護(hù)了一個(gè)鏈表用來存放準(zhǔn)備就緒的事件。

工作過程:

  執(zhí)行epoll_ create時(shí),創(chuàng)建了紅黑樹和就緒鏈表,執(zhí)行epoll_ ctl時(shí),如果增加socket句柄,則檢查在紅黑樹中是否存在,存在立即返回,不存在則添加到樹干上,然后向內(nèi)核注冊(cè)回調(diào)函數(shù),用于當(dāng)中斷事件來臨時(shí)向準(zhǔn)備就緒鏈表中插入數(shù)據(jù)。執(zhí)行epoll_wait時(shí)立刻返回準(zhǔn)備就緒鏈表里的數(shù)據(jù)即可。

epoll優(yōu)點(diǎn)

1)支持一個(gè)進(jìn)程打開大數(shù)目的socket描述符(FD)

2)IO效率不隨FD數(shù)目增加而線性下降

3)使用mmap加速內(nèi)核與用戶空間的消息傳遞。

總結(jié)

以上是生活随笔為你收集整理的select,poll,epoll区别面试常问的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

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

主站蜘蛛池模板: 日本一本不卡 | 九色av| 亚欧美精品 | 艳妇臀荡乳欲伦交换在线看 | 欧美国产精品一区 | 四虎视频国产精品免费 | 国产极品福利 | 国产美女久久久 | 成年人网站av | 无码av天堂一区二区三区 | 成人免费午夜 | 泰坦尼克号3小时49分的观看方法 | 懂色一区二区二区av免费观看 | 黑人添美女bbb添高潮了 | 欧美成人高清 | 日日操日日射 | 九色精品视频 | 久久精品2019中文字幕 | 天堂久久久久久 | 黄色av观看 | 欧美国产精品一区 | 99热99这里只有精品 | 色偷偷综合 | 亚洲AV无码久久精品色三人行 | 精品国产一区二区三区四区精华 | 亚洲国产日韩欧美在线观看 | 国产一区91精品张津瑜 | 你懂的国产 | 天天插综合| 亚洲中文字幕久久无码 | 日韩一区二区在线观看视频 | 无码久久av一区二区三区 | 成人试看120秒体验区 | 久久久久久亚洲av毛片大全 | 亚洲图色在线 | 超碰资源| 国产91免费看 | 加勒比日韩 | 免费无码不卡视频在线观看 | 麻豆疯狂做受xxxx高潮视频 | 91丨九色丨黑人外教 | 日韩啊啊啊 | 五月天亚洲综合 | 97国产精品久久久 | 天天舔日日操 | 亚洲码视频 | 日不卡 | 亚洲一区二区三区蜜桃 | 成人一二三 | 国产精品无码成人网站视频 | 神马伦理视频 | 国产系列在线 | 欧洲美一区二区三区亚洲 | 奶水喷溅 在线播放 | 一区二区三区四区不卡 | 亚洲欧洲一二三区 | 一区二区视频在线免费观看 | 亚洲精品亚洲人成人网 | 亚洲欧美自拍偷拍 | www日本com| 亚洲精品电影网 | 爱爱免费小视频 | 二区不卡| 中文字幕成人在线视频 | 国产午夜久久 | 动漫美女揉胸 | 日日色av | 日韩精品一区二区三区在线视频 | 99精品国产免费 | 1769国产精品视频 | 色乱码一区二区三区网站 | 久久国产激情视频 | 成人瑟瑟 | 少妇一级淫片免费放中国 | 亚洲天堂网站 | 亚洲精品乱码久久久久久黑人 | 日韩av资源在线观看 | 中文字幕av网站 | 国家队动漫免费观看在线观看晨光 | 丁香六月色婷婷 | 欧美日韩另类视频 | 丰满人妻一区二区三区大胸 | 男人在线视频 | 色吧五月天 | 人妖和人妖互交性xxxx视频 | 少妇高潮惨叫久久久久久 | 黄色三级图片 | 婷婷午夜天 | 久久精品无码毛片 | 欧美一级在线 | 爽爽视频在线观看 | 久久精品噜噜噜成人88aⅴ | 中文字幕日韩一区二区三区 | 精品视频91 | 欧美人伦| 久久久久久久久久久久久久久久久 | 中文字幕在线观看二区 | 欧美顶级毛片在线播放 | 欧美一级欧美三级在线观看 |