I/O多路复用的select、poll、epoll机制
1、I/O多路复用机制
1.1 简介
select、poll和epoll都允许在一个进程里监视多个文件描述符,一旦某个描述符就绪(可读/可写…),就会返回通知程序可以执行相应的操作了。它们本质上还是同步I/O,在获知事件就绪后再去进行相应阻塞的读写操作。
参考:
① Linux IO模式及 select、poll、epoll详解 - 知乎
② linux下select/poll/epoll机制的比较 - 博客园
③ 关于同步,异步,阻塞,非阻塞,IOCP/epoll,select/poll,AIO ,NIO ,BIO的总结 - CSDN
1.2 结合API函数分析
1.2.1 应用层
① select函数
select函数可以监听的事件有readfds、writefds和exceptfds三类。调用select函数会阻塞到有描述符就绪或者超时返回,函数返回之后再去使用FD_ISSET遍历fd_set集合确认到底是哪个fd文件描述符就绪。select函数最多可以监听102