为了账号安全,请及时绑定邮箱和手机立即绑定

用了epoll还需要非阻塞么?

用了epoll还需要非阻塞么?

凤凰求蛊 2019-05-25 13:18:53
因为epoll每次返回的是有数据可读的fd,那么read的话肯定不会阻塞住的,那么用了epoll之后是不是就不要再把fd设为非阻塞了呢???
查看完整描述

2 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

一般不需要设置。因为fd的NON_BLOCK会增加程序的复杂度,数据写没写完还要额外判断,加上epoll是回调机制,这样还需要维护另外一个逻辑。网络速度现在很快了,一般读写都是可以立即返回的。没必要。
                            
查看完整回答
反对 回复 2019-05-25
?
浮云间

TA贡献1829条经验 获得超4个赞

IO多路复用+阻塞式。仅使用一个线程就可以实现对多个描述符的状态管理,但由于IO输入输出调用本身是阻塞的,可能出现某个IO输入输出过慢,影响其他描述符的效率,从而体现出整体性能不高。此种方式编程难度比较低。单考虑read是不需要的,不过考虑到write的时候,由于对端的速率未知,可能影响整体性能。
                            
查看完整回答
反对 回复 2019-05-25
  • 2 回答
  • 0 关注
  • 257 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号