社区
Linux/Unix社区
帖子详情
求你一个多线程同时epoll_wait的实例。
飞翔的薄荷
2013-04-19 10:48:16
总觉得有很多无法解决的问题,比如:
1、想read时调用epoll_ctl时无法确定是否需要EPOLLOUT。想write时调用epoll_ctl时无法确定是否需要EPOLLIN。
2、一个线程epoll_wait返回后,还没来得及调用read或write函数,另一个线程调用epoll_ctl,导致第三个线程的epoll_wait返回。
最难的是第二个问题。
...全文
851
7
打赏
收藏
求你一个多线程同时epoll_wait的实例。
总觉得有很多无法解决的问题,比如: 1、想read时调用epoll_ctl时无法确定是否需要EPOLLOUT。想write时调用epoll_ctl时无法确定是否需要EPOLLIN。 2、一个线程epoll_wait返回后,还没来得及调用read或write函数,另一个线程调用epoll_ctl,导致第三个线程的epoll_wait返回。 最难的是第二个问题。
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
rem2002
2014-03-06
打赏
举报
回复
我也在纠结这个问题啊, 不是 读,就是写,这不等于是单工的了,我刚开始以为 epoll_ctl 可以对同一fd 注册读、写两事件,测试时不能,期望交流。
飞翔的薄荷
2013-04-24
打赏
举报
回复
为什么要多个线程操作epoll?一个线程收发包,其他线程负责处理逻辑不好吗: 我的代码要在windows和linux下都能跑,因此希望两种逻辑结构都差不多。windows下就是多个线程同时等待一个完成端口。 就问题本身而言,多线程操作同一个对象,还是加锁或者用队列更安全。 不能加锁,加锁后相当于一个线程。 搞定了没?可以探讨一下。 因为其它项目,这个项目挂起了。
tommwq
2013-04-21
打赏
举报
回复
为什么要多个线程操作epoll?一个线程收发包,其他线程负责处理逻辑不好吗? 就问题本身而言,多线程操作同一个对象,还是加锁或者用队列更安全。
heartlesstoanyone
2013-04-21
打赏
举报
回复
搞定了没?可以探讨一下。
飞翔的薄荷
2013-04-19
打赏
举报
回复
写错了,write应该是recv。
飞翔的薄荷
2013-04-19
打赏
举报
回复
我知道用EPOLLONESHOT清理掉,但是另一个线程使用epoll_ctl后,又被加上了。 比如我想处理一个write事件,需要加入EPOLLIN,一个线程epoll_wait返回,但还没来得及处理我的代码(也就是我还不知道要清理掉EPOLLIN)。另一个线程请求一个send,需要加入EPOLLOUT,此时调用epoll_ctl看到EPOLLIN还没有处理,所有epoll_ctl使用EPOLLIN|EPOLLOUT。然后悲剧了,有两个线程同时处理EPOLLIN。
qq120848369
2013-04-19
打赏
举报
回复
1,根本不是问题,这只能说明你不会设计代码。 2,了解EPOLLONESHOT选项,可以帮助你多线程共享同一个epoll set的原子性,从模式来说这叫做leader-follower模型。
全球各国汇率、短长期、政策利率数据(1914-2024.3)
根据国际货币基金组织(IMF)等平台的数据,整理了全球各国的兑美元汇率,短期利率、长期利率、政策利率数据,时间范围最新至2024年3月,希望对大家有所帮助 一、数据介绍 数据名称:全球各国汇率、短长期、政策利率数据 数据范围:全球国家 样本数量:76403条 数据年份:1914-2024.3 数据说明:包含兑美元汇率、短期利率、长期利率、政策利率 更新时间:2024年3月 二、指标范围 单位 国家 年份 兑美元汇率-月度均值 兑美元汇率-年度均值 短期利率 长期利率 政策利率
YOLO算法实验室电子仪器电源状态目标检测数据集-60张-标注类别为关机状态-开机状态.zip
YOLOv11目标检测实战项目
Linux/Unix社区
23,223
社区成员
74,536
社区内容
发帖
与我相关
我的任务
Linux/Unix社区
Linux/Unix社区 应用程序开发区
复制链接
扫一扫
分享
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章