1.参考学习资料
https://www.ibm.com/developerworks/cn/linux/l-cn-edntwk/
http://blog.csdn.net/piaojun_pj/article/details/5991968
2.epoll
常见的IO多路复用技术包括select(),poll(),epoll. 于Linux 2.5.44首度登场的epoll是Linux核心的可扩展I/O事件通知机制。它设计目的只在取代既有POSIX select(2)与poll(2)
系统函式,让需要大量操作文件描述符的程序得以发挥更优异的性能(举例来说:旧有的系统函式所花费的时间复杂度为O(n),epoll则耗时O(1))。epoll与FreeBSD的kqueue类
似。
epoll的操作接口有:
(1)int epoll_create(int size);
创建一个epoll对象,并返回该epoll自身的文件描述符,参数size表示的是该epoll可以管理的fd的上限。
(2)int epoll_ctl(int epfd, int op, int fd, struct epoll_event *event);
epoll的事件注册函数,将某个fd在epoll上注册,修改或者删除等操作。
(3)int epoll_wait(int epfd, struct epoll_event *events, int maxevents, int timeout);
等待已经注册到epoll的事件被触发或者获取事件触发超时。