免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 9842 | 回复: 15
打印 上一主题 下一主题

【epoll 相关】什么样的事件才触发可写? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-09-03 17:29 |只看该作者 |正序浏览
epoll ET 模式下:
    一开始以为对端read,会出发这端的可写事件发生,结果不是这样。
    只有第一次连接到服务器端的时候会触发一次可写事件(EPOLLOUT),没有触发可读(EPOLLIN)。
    触发可写事件,除去连接、关闭的时候,其他还有啥情况触发?
    欢迎发言。

[ 本帖最后由 amoyppa 于 2008-9-3 17:31 编辑 ]

论坛徽章:
0
16 [报告]
发表于 2008-09-04 17:38 |只看该作者
原帖由 0vk0 于 2008-9-4 17:32 发表

不是喜欢,人家正确就要承认人家,为什么大家都这么针对人家,

如果她错了,你可以说她,我们也可以批评指责她

但明明人家对了,你也这样说,是不是有点……

行了,你也不用为他打抱不平了,站务有个关于这方面的投诉帖子,再有问题去那个帖子说吧。

论坛徽章:
0
15 [报告]
发表于 2008-09-04 17:38 |只看该作者

回复 #14 5毛党党员 的帖子

你老在乎人家过干嘛,人家都改过了你还追究

http://bbs.chinaunix.net/thread-1250945-1-1.html

你也看过人家这个帖子说你,你怎么想

论坛徽章:
0
14 [报告]
发表于 2008-09-04 17:36 |只看该作者
原帖由 0vk0 于 2008-9-4 17:32 发表

不是喜欢,人家正确就要承认人家,为什么大家都这么针对人家,

如果她错了,你可以说她,我们也可以批评指责她

但明明人家对了,你也这样说,是不是有点……



这个。。。你可以看下4楼,就知道他最开始的回复是什么了

论坛徽章:
0
13 [报告]
发表于 2008-09-04 17:32 |只看该作者
原帖由 yangsf5 于 2008-9-4 13:27 发表

貌似你喜欢现在c++版的这种风气..

不是喜欢,人家正确就要承认人家,为什么大家都这么针对人家,

如果她错了,你可以说她,我们也可以批评指责她

但明明人家对了,你也这样说,是不是有点……

论坛徽章:
1
天蝎座
日期:2013-08-25 10:27:22
12 [报告]
发表于 2008-09-04 13:27 |只看该作者
原帖由 0vk0 于 2008-9-4 10:17 发表
你这就算正面回答了?

qliu00说的是变成另一种状态时就触发,这是正确的啊

貌似你喜欢现在c++版的这种风气..

论坛徽章:
11
技术图书徽章
日期:2014-03-01 14:44:34天蝎座
日期:2014-05-21 22:11:59金牛座
日期:2014-05-30 17:06:14
11 [报告]
发表于 2008-09-04 10:58 |只看该作者
LT模式:epoll就是一个快速版poll,可读可写就绪条件和传统poll一致
ET模式:为了避免Starvation,建议
            1)文件描述符设置为非阻塞
            2)只在read或write返回EAGAIN后,才能调用下一次epoll_wait
            3)应用层维护一个就绪链表,进行轮询,可以防止大量IO时在一个描述符上长期read或write(因为只有等到read
                 或 write返回EAGAIN后才表示该描述符处理完毕)而令其它描述符starve

         理解ET的含义后,上面那些操作其实都是显然的。以wirte为例说明,LT时只要有一定范围的空闲写缓存区,每次epoll_wait都是可写条件就绪,但是ET时从第一次可写就绪后,epoll_wait不再得到该描述符可写就绪通知直到程序使描述符变为非可写就绪(比如write收到EAGAIN)后,epoll_wait才可能继续收到可写就绪通知(比如有空闲可写缓存)
         其实ET相对于LT来说,把文件描述符状态跟踪的部分责任由内核空间推到用户空间,内核只关心状态切换即从未就绪到就绪切换时才通知用户,至于保持就绪状态的,内核不再通知用户,这样在实现非阻塞模型时更方便,不需要每次操作都先查看文件描述符状态。上述多数内容取自man epoll

论坛徽章:
0
10 [报告]
发表于 2008-09-04 10:17 |只看该作者

回复 #8 yangsf5 的帖子

你这就算正面回答了?

qliu00说的是变成另一种状态时就触发,这是正确的啊

论坛徽章:
0
9 [报告]
发表于 2008-09-04 10:17 |只看该作者
自己不确定的东西不要乱发言
灌水混分可以,不懂乱说误导别人就不对了
这个问题我也不懂,就是就此发表下看法,回答别人的问题要认真

论坛徽章:
1
天蝎座
日期:2013-08-25 10:27:22
8 [报告]
发表于 2008-09-04 10:06 |只看该作者
原帖由 qliu00 于 2008-9-3 21:08 发表
变成另一种状态时就触发

你确定?

明显没正面回答楼主的帖子。。
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP