现在位置: 首页 > IO多路复用
2015年03月14日 应用开发 ⁄ 共 8294字 IO多路复用之epoll总结已关闭评论 ⁄ 阅读 1,764 次
1、基本知识 epoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。 2、epoll接口 epoll操作过程需要三个接口,分别如下: #include <sys/epoll.h> int epoll_create(int size); int epoll_ctl(int epfd, ...
阅读全文
2015年03月13日 应用开发 ⁄ 共 5553字 IO多路复用之poll总结已关闭评论 ⁄ 阅读 1,693 次
1、基本知识 poll的机制与select类似,与select在本质上没有多大差别,管理多个描述符也是进行轮询,根据描述符的状态进行处理,但是poll没有最大文件描述符数量的限制。poll和select同样存在一个缺点就是,包含大量文件描述符的数组被整体复制于用户态和内核的地址空间之间,而不论这些文件描述符是否就绪,它的开销随着文件描述符数量的增加而线性增大。 2、poll函数 函数格式如下所示: # include <poll.h> int p...
阅读全文
2015年03月12日 应用开发 ⁄ 共 5691字 IO多路复用之select总结已关闭评论 ⁄ 阅读 2,106 次
阻塞式I/O编程有两个特点: 一、如果一个发现I\O有输入,读取的过程中,另外一个也有了输入,这时候不会产生任何反应,也就是需要你的程序语句去select的时候才知道有数据输入。 二、程序去select的时候,如果没有数据输入,程序会一直等待,直到有数据位置,也就是程序中无需循环和sleep。 1、基本概念 IO多路复用是指内核一旦发现进程指定的一个或者多个IO条件准备读取,它就通知该进程。IO多路复用适用如下场合: (1)当客...
阅读全文
×