IO 多路复用 select poll epoll

该文章参考总结B站视频【并发】IO多路复用select/poll/epoll介绍

IO多路复用

单个线程,通过记录跟踪每个I/O流的状态,来同时管理多个I/O流

实现

select

原理

IO 多路复用 select poll epoll_第1张图片

虚线上为文件描述符号集合fds(即网络连接集合)和记录最大文件描述符准备阶段
遍历fds,准备对应的rset,rset为一个bitmap ,大小为1024
比如:fds为1、2、5、7、9,则对应的bitmap为011001010100…
select(max+1,&rset,null,null,null)
max+1的作用是操作内核轮询bitmap时进行卡位操作,即轮询的范围

你可能感兴趣的:(IO)