epoll使用簡單分析

2021-07-10 13:49:28 字數 686 閱讀 8956

前面說了下select和poll的優缺點及使用,現在說說linux最新的epoll機制,同樣,如有不足或錯誤之處,還請各位道友指導

epoll機制共有三個函式:

epoll_create(int size):建立乙個epoll實體,size是提示核心內部結構的大小,並無大礙(size在linux kernel 2.6.8後自動分配)

epoll_ctl():控制相應的套接字的行為

epoll_wait():等待套接字就緒並返回相應的就緒套接字集合(注意:這才是真正強大的地方)

關於更詳細如何使用,這有位大神寫的《徹底學會epoll》系列:

他寫的非常詳細,我就在說了,不過還是要說下epoll相對select/poll他們的優勢及不足

優點:能夠監聽相當大數目的套接字連線

它返回的是活動的套接字集合,而你不必像select/poll哪樣再去輪循所有的套接字去找出活動的套接字

相比與select/poll複製套接字集合到核心空間,epoll使用mmap(記憶體對映)技術,直接省去了複製的步驟

不足:epoll只被linux所獨自採用,可移植性受限

epoll每次呼叫epoll_ctl都是牽扯到系統呼叫,如果是在許多短連線的話,epoll可能比select/poll還慢

基本就是這樣,在選擇select/poll/epoll機制的過程中,要分析服務的鏈結情況,再去做最佳的選擇打算

EPOLL的簡單使用

epoll是linux下的乙個處理多路i o復用的機制,基於事件通知,能夠高效的處理多個socket連線。使用epoll,基本的函式只有三個 1 建立 epoll create 2 控制 epoll ctl 3 監聽 epoll wait 2.1 建立 函式原型 int epoll create i...

Linux中epoll簡單使用

epoll是linux核心為處理大批量控制代碼而作了改進的poll,是linux下多路復用io介面select poll的增強版本,它能顯著減少程式在大量併發連線中只有少量活躍的情況下的系統cpu利用率。epoll預設的工作模式是level triggered,簡稱lt即水平觸發模式。是一種預設的工...

epoll監聽檔案 epoll的使用

epoll i o event notification facility 在linux的網路程式設計中,很長的時間都在使用select來做事件觸發。在linux新的核心中,有了一種替換它的機制,就是epoll。相比於select,epoll最大的好處在於它不會隨著監聽fd數目的增長而降低效率。因為...