首頁 > 後端開發 > php教程 > select和epoll

select和epoll

WBOY
發布: 2016-07-29 08:55:32
原創
3769 人瀏覽過

select和epoll這兩個機制都是多路I/O機制的解決方案,select為POSIX標準中的,而epoll為Linux所特有的。
epoll的最大好處是不會隨著FD的數量增長而降低效率,在selec中採用輪詢處理,其中的資料結構類似一個數組的資料結構,而epoll是維護一個隊列,直接看隊列是不是空就可以了。
nginx就是使用epoll來實現I/O復用支援高並發,目前在高並 發的場景下,nginx越來越收到歡迎。
select的一 個缺點在於單一進程能夠監視的檔案描述符的數量存在最大限制
epoll:
(1)IO的效率不會隨著監視fd的數量的增長而下降。 epoll不同於select和poll輪詢的方式,而是透過每個fd定義的回呼函數來實現的。只有就緒的fd才會執行回呼函數;
(2)支援電平觸發和邊緣觸發(只告訴進程哪些檔案描述符剛剛變為就緒狀態,它只說一遍,如果我們沒有採取行動,那麼它將不會再次告知,這種方式稱為邊緣觸發)兩種方式,理論上邊緣觸發的效能要更高一些,但是程式碼實作相當複雜。
(3)有著良好的就緒事件通知機制
select:
(1)單一進程可監視的fd數量受到了限制,在32位元機器上,他所能管理的fd數量最大為1024;
(2)對socket進行掃描時是線性掃描,當socket檔案描述子數量變多時,大量的時間是被白白浪費掉的。

')​​.addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i ').text(i)); }; $numbering.fadeIn(1700); }); });

以上就介紹了select和epoll,包括了方面的內容,希望對PHP教程有興趣的朋友有所幫助。

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板