线程池和epoll的区别
一、相同点:
1)三者都需要在fd上注册用户关心的事件;
2)三者都要一个timeout参数指定超时时间;
二、不同点:
select:
a)select指定三个文件描述符集,分别是可读、可写和异常事件,所以不能更加细致地区分所有可能发生的事件;
b)select如果检测到就绪事件,会在原来的文件描述符上改动,以告知应用程序,文件描述符上发生了什么时间,所以再次调用select时,必须先重置文件描述符;
c)select采用对所有注册的文件描述符集轮询的方式,会返回整个用户注册的事件集合,所以应用程序索引就绪文件的时间复杂度为O(n);
d)select允许监听的最大文件描述符个数通常有限制,一般是1024,如果大于1024,select的性能会急剧下降;
e)只能工作在LT模式。
poll:
a)poll把文件描述符和事件绑定,事件不但可以单独指定,而且可以是多个事件的按位或,这样更加细化了事件的注册,而且poll单独采用一个元素用来保存就绪返回时的结果,这样在下次调用poll时,就不用重置之前注册的事件;
b)poll采用对所有注册的文件描述符集轮询的方式,会返回整个用户注册的事件集合,所以应用程序索引就绪文件的时间复杂度为O(n)。
c)poll用nfds参数指定最多监听多少个文件描述符和事件,这个数能达到系统允许打开的最大文件描述符数目,即65535。
d)只能工作在LT模式。
epoll:
a)epoll把用户注册的文件描述符和事件放到内核当中的事件表中,提供了一个独立的系统调用epoll_ctl来管理用户的事件,而且epoll采用回调的方式,一旦有注册的文件描述符就绪,讲触发回调函数,该回调函数将就绪的文件描述符和事件拷贝到用户空间events所管理的内存,这样应用程序索引就绪文件的时间复杂度达到O(1)。
b)epoll_wait使用maxevents来制定最多监听多少个文件描述符和事件,这个数能达到系统允许打开的最大文件描述符数目,即65535;
c)不仅能工作在LT模式,而且还支持ET高效模式(即EPOLLONESHOT事件,读者可以自己查一下这个事件类型,对于epoll的线程安全有很好的帮助)。

完美商途
贺林清:大家好,我是贺公子,我想花钱买个教训,谁有梦想,请留言给我。当华夏第一富二代重回家族后,天上人间多了一个新的神话……今晚所有的消费,由贺公子买单,尖叫声!

一品代嫁娇娘
穿越变成一个又丑又胖的小村姑是什么感受?

凌天至尊
卑微少年偶吞噬天道,从此凝聚神魂,霸绝八荒,横扫诸天万界。

重生龙婿
名震江东,叱咤风云,不可一世的战神宋傲被叛徒出卖,重生在一个上门的废物的身上。面对从天而降的母女,铁骨硬汉宋傲竟然手忙脚乱,不知道如何是好。为了找出叛徒,夺回一切,他只能融入这个新身份。可是,眼前这个美的不可方物的老婆实在太诱人,一不小心竟然生出了感情。

绝品医神
美女想治病?好,先把衣服脱了!贪官污吏想治病?不好意思,小爷心情不爽!实习医生华长琪无意间获得透视之瞳,从此步步高升,风生水起,创造了一段属于自己的人生传奇……

我是富二代
相恋五年的女友因为金钱离去,倒贴给所谓的百万富翁,可是,我有什么?我只有两亿而已..........

我的七个姐姐天姿国色
大姐霸道总裁、二姐医术高超、三姐顶级杀手、四姐江湖大姐大、五姐维密模特、六姐神秘莫测,七姐天才少女……我是大夏帝国十二军区总指挥,封号——昆仑战神!

严少嗜宠娇柔妻
新婚第一夜,叶未晞吞吞吐吐说自己亲戚来了,从来没撒过慌的叶未晞说得很是心虚。新婚第二天,叶未晞咽了咽就要脱口而出的口水说自己要出国留学进修,这一次不是很心虚了。直至新婚第七天,叶未晞找借口说自己想在娘家住几天。严辰夜一件也没有让叶未晞得逞……