Linux epoll
簡介與示例 TCP 服務器
1. 為什么要用 epoll
select
/poll
每次調用都把全部文件描述符從用戶態拷貝到內核態,隨連接數增長而線性變慢;epoll
采用事件驅動+就緒隊列的方式,內核只把“已就緒”的描述符返回給用戶態,O(1) 規模擴展;- 支持 邊沿觸發 Edge-Triggered (ET) 與 水平觸發 Level-Triggered (LT) 兩種模型,便于構建高性能網絡服務。
2. 三個系統調用
調用 | 作用 |
---|---|
int epoll_create1(int flags) | 創建 epoll 實例,返回 epfd;flags 常用 EPOLL_CLOEXEC |
int epoll_c |