视频地址:

腾讯面试:请描述 select、poll、epoll 这三种IO多路复用技术的执行原理_哔哩哔哩_bilibili

Untitled

Select

Select IO 多路复用的执行原理

  1. 将当前进程的所有文件描述符,一次性的从用户态拷贝到内核态。
  2. 在内核中快速的无差别遍历每个 fd,判断是否有数据达到。
  3. 将所有 fd 状态,从内核态拷贝到用户态,并返回已就绪 fd 的个数。
  4. 在用户态遍历判断具体哪个 fd 已就绪,然后进行相应的事件处理。

Select IO 多路复用的限制和不足

  1. 文件描述符表为 bitmap 结构,且有长度为 1024 的限制。
  2. fdset 无法做到重用,每次循环必须重新创建。