码迷,mamicode.com
首页 > 其他好文 > 详细

epoll的原理和用法

时间:2015-03-05 19:04:51      阅读:121      评论:0      收藏:0      [点我收藏+]

标签:

  设想一个场景,有100万用户同时与一个进程保持着TCP链接,而每一时刻只有几十个或几百个TCP链接是活跃的(接收到TCP包)也就是说,在每一时刻进程只需要处理这100万链接中的一小部分链接,那么,如何才能高效的处理这种场景那,进程是否在每次询问操作系统收集有事件发生的TCP连接时,把这100万个链接告诉操作系统,然后由操作系统找出其中有事件发生的几百个链接呢?,实际上在linux2.4版本以前,那时的select或者poll事件驱动方式就是这样做的(就是每次通过轮询的方式从100万个链接中找出活跃链接)

   这里有个明显的问题,即在某一时刻,进程收集有事件的连接时,其实这100万链接中的大部分都是没有事件发生的,因此,如果每次收集事件时,都把这100万链接的套接字传给操作系统,而由操作系统内核寻找这些链接上有没有未处理的事件,将会是巨大的资源浪费,而select和poll就是这样做的

epoll的原理和用法

标签:

原文地址:http://www.cnblogs.com/phpfans/p/4316486.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!