前面說了下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數目的增長而降低效率。因為...