五种IO模型详解( 六 )


因为信号驱动要求有另一端主动写入数据 , 所以socket、pipe、fifo、terminal等文件描述符类型是可以信号驱动IO 的 , 但是不支持对普通文件使用信号驱动IO 。
3.select()、poll()和epoll
前面说了 , 这三个函数是文件描述符状态监控的函数 , 它们可以监控一系列文件的一系列事件 , 当出现满足条件的事件后 , 就认为是就绪或者错误 。 事件大致分为3类:可读事件、可写事件和异常事件 。 它们通常都放在循环结构中进行循环监控 。
select()和poll()函数处理方式的本质类似 , 只不过poll()稍微先进一点 , 而epoll处理方式就比这两个函数先进多了 。 当然 , 就算是先进分子 , 在某些情况下性能也不一定就比老家伙们强 。
select()--tt-darkmode-color: #707070;">备注:
这篇文章摘抄来自网络 。 我打算总结一些列架构师需要的优秀文章 , 由于自己写会花太多时间 , 我决定做一个搬运工 , 为大家筛选优秀的文章 , 最后我会做成索引方便大家查找 。