Linux中IO多路复用技术之select(),epoll

来源:互联网 发布:机器人虚拟仿真软件 编辑:程序博客网 时间:2024/06/05 06:32

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的事件被触发或者获取事件触发超时。

     

0 0
原创粉丝点击