浙江省高等学校教师教育理论培训

微信搜索“教师资格证岗前培训”小程序

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

C++ - 网络编程模型 - Linux EPOLL - - ITeye技术网站

 

1.简介

   Linux I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。Linux 2.6内核中有提高网络I/O性能的新方法,即epoll 。 epoll是什么?按照man手册的说法是为处理大批量句柄而作了改进的poll。要使用epoll只需要以下的三个系统函数调用:  epoll_create(2),epoll_ctl(2),epoll_wait(2)。


2.select模型的缺陷

   (1) 在Linux内核中,select所用到的FD_SET是有限的

   内核中有个参数__FD_SETSIZE定义了每个FD_SET的句柄个数:#define __FD_SETSIZE 1024。也就是说,如果想要同时检测1025个句柄的可读状态是不可能用select实现的;或者同时检测1025个句柄的可写状态也是不可能的。

   (2) 内核中实现select是使用轮询方法

   每次检测都会遍历所有FD_SET中的句柄,显然select函数的执行时间与FD_SET中句柄的个数有一个比例关系,即select要检测的句柄数越多就会越费时

posted on 2013-03-26 23:14  lexus  阅读(367)  评论(0编辑  收藏  举报