epoll和select的区别
时间: 2023-12-03 13:03:52 浏览: 93
回答: epoll和select在调用接口上有一些不同。select和poll只提供了一个函数,而epoll提供了三个函数:epoll_create、epoll_ctl和epoll_wait。epoll_create用于创建一个epoll句柄,epoll_ctl用于注册要监听的事件类型,epoll_wait用于等待事件的产生。\[1\] epoll可以理解为event poll,它是事件驱动的,可以通知我们哪个流发生了怎样的I/O事件,而不是像select和poll那样进行忙轮询或无差别轮询。\[2\] epoll的复杂度降低到了O(1),相比之下,select的问题主要在于效率低下和每次调用都需要遍历所有的文件描述符,而epoll通过在Linux内核中申请一个简易的文件系统,将原来的select/epoll函数调用的过程分为三个部分,从而改善了这些问题。\[3\]
#### 引用[.reference_title]
- *1* *2* [深入理解select、poll和epoll及区别](https://blog.csdn.net/wteruiycbqqvwt/article/details/90299610)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
- *3* [epoll 和 select 的区别](https://blog.csdn.net/weixin_51353093/article/details/127523254)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item]
[ .reference_list ]
阅读全文