核心结论
select、poll 与 epoll 都用于等待多个文件描述符的就绪状态,但它们在描述符集合的表达形式、用户态与内核态的数据交换、就绪结果的返回方式、触发语义和平台可移植性上存在差异。select 和 poll 通常需要在每次等待时提交整个关注集合,并检查相应条目;epoll 将关注集合长期注册在内核对象中,等待时主要返回已经就绪的事件。不能简单断言 epoll 永远更快,实际选择还取决于连接数量、活跃比例、注册变化频率、回调成本和平台要求。
底层机制
select 使用描述符位集合表达读、写和异常等关注状态。调用返回后,集合内容会被改写为就绪结果,应用下一轮通常需要