关注
poll,作为select和epoll的中间过渡件,(1)和select类似的是:同样存在用户态拷贝到内核态,从内核态拷贝到用户态,poll返回需要轮询才能直到那个事件发生了,相当于3次操作(拷贝+轮询)(2)和epoll类似的是提出了POLLIN、POLLOUT等概念。区别:(1)和select区别:最大的区别是少了while循环开始的临时拷贝,其次是1024监听数量的限制。这里是最有意思的,源于pollfd结构,有三个成员:fd、events关心的事件类型(输入,POLLIN等宏)、revents内核返回事件发生了(返回),我觉得最有意思的就是revents,这东西小于等于0内核直接忽略(pollfd的数组中大量是小于等于0的),poll返回的是revents大于0的那些事件,也就避免了while刚开始的临时拷贝(2)select/poll没有避免用户到内核、内核到用户、用户态的轮询问题。怎么解决,epoll出现了--用户到内核需要拷贝(select/poll/epoll三个都需要),内核到用户需要拷贝(注意:若100W的socket,此时只有1w事件发生了,select/poll需要拷贝100W个,而epoll需要拷贝1w个),轮询(select/poll需要轮询100W个,而epoll需要轮询1w个),epoll之所以高效,核心是因为它只关心此时已经发生的事件!!!这样想来,这个idea是平凡的,还能在优化了,不,因为epoll只处理发生的事件,已经最优了
1
相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 面试问题记录 #
75526次浏览 1068人参与
# 工作中,你有没有遇到非常爱骂人的领导? #
21125次浏览 145人参与
# 京东TGT #
54990次浏览 188人参与
# 上班到公司第一件事做什么? #
41572次浏览 383人参与
# 硬件人的简历怎么写 #
258391次浏览 2901人参与
# 求职季如何保持心态不崩 #
108266次浏览 887人参与
# 找工作的破防时刻 #
2920次浏览 41人参与
# 工作时那些社死瞬间 #
26782次浏览 199人参与
# 拼多多工作体验 #
18441次浏览 153人参与
# 互联网行业现在还值得去吗 #
7976次浏览 42人参与
# 技术转行的心路历程 #
49082次浏览 665人参与
# 选完offer后,你后悔学本专业吗 #
39433次浏览 219人参与
# 你觉得技术面多长时间合理? #
87856次浏览 647人参与
# 国企和大厂硬件兄弟怎么选? #
121580次浏览 1657人参与
# 你遇到过哪些神仙同事 #
76160次浏览 668人参与
# 安利/避雷我的专业 #
67700次浏览 499人参与
# 面试经验谈 #
51939次浏览 829人参与
# 实习生应该准时下班吗 #
204390次浏览 1329人参与
# 米哈游求职进展汇总 #
323751次浏览 2224人参与
# 面试吐槽bot #
19275次浏览 109人参与
# 工作一周年分享 #
20793次浏览 113人参与