select/poll/epoll 优缺点比较

发布时间 2023-11-18 09:51:10作者: Zijian/TENG

校招应届生简历中,有一个 C++ 项目出现的频率非常高...

select

  • ? 1024 fd 限制(可修改,麻烦)
  • ? 需要遍历才知道哪些 fd ready
  • ? 副作用:修改传入 fd_set,每次需要重新赋值

poll

  • ? 解决了 select 的 fd 1024 限制
  • ? 依然需要遍历才知道哪些 fd ready
  • ? 也有副作用,手动复位 revent

epoll

  • ? 无 1024 fd 限制
  • ? 值返回 ready fd 列表,无需遍历整个 fd 集合
  • ? 无副作用,不需要每次复位
  • 兴趣列表红黑树,就绪列表是双向链表