文章代码来源:高并发Web服务器
简单介绍(后面去其他博客搜刮一下补充一波)
非阻塞同步IO所要用到的一个功能。这个项目中对这部分功能进行了很好的封装。简单介绍一下Epoll的作用。当服务器的负责监听的文件描述符发生改动,表示有连接进来。Epoll会将新的文件描述符与其对应事件加入,后面调用自身的一些方法,去监听这些连接文件描述符,有数据变动说明有数据进来,就返回这些有数据的文件描述符的列表。那么主线程通过列表中的这些文件描述符就可以拿到数据,然后分发给各个线程。
API及其具体实现如下:
1 | //epoll.h |
1 | //epoll.cpp |