Reactor
来源:互联网 发布:网上买钻戒靠谱吗 知乎 编辑:程序博客网 时间:2024/05/07 13:30
1.类图
不管设计模式,reactor中的Add/Del/Process就是SelectDemultiplexer(此次只关注此多路分发器)中的
+ AddHandler_:FD_SET 把EventHandler::GetHandle()放入select监听集。(还有poll/epoll等)
+ DelHandler_:FD_CLR
+ ProcessHandler:api select
检测到rd/wr/err就调用
EventHandler::HandleRd
EventHandler::HandleWr
EventHandler::HandleErr
2.Srv demo
3.简结
Ø obj:EventHandler
回调函数集
Ø Reactor::AddHandler
先把obj::m_handle对应的EventHandler::HandleCBxx放入map[obj::m_handle] = obj:EventHandler::HandleCBxx,再把obj::m_handle放入监听集中(select/poll/epoll)。
Ø Reactor::ProcessHandler
监听到了,找到对应的obj:EventHandler并执行。
Ø 扩展
在我们自己的app中,一个event对应一个fd。
fd0 = open()
fdn = open()
这样set/get event就可以用reactor了。
0 0
- Reactor
- reactor
- reactor
- Reactor
- Reactor
- Reactor
- Reactor
- Reactor
- reactor&Proactor
- Reactor模式
- ace-Reactor
- Reactor pattern
- Reactor模式
- Reactor模式
- .net reactor
- Reactor模式
- Reactor模式
- reactor-spring
- MySQL数据库总结(6)列类型及列的增删改
- hdoj 悼念512汶川大地震遇难同胞——一定要记住我爱你 2186 (模拟)
- caffe 输出重定向, 双重输出重定向
- 堆优化prim
- SPRINGMVC登陆注册查询功能碰到的问题
- Reactor
- HiveServer2
- Three.js的轻量级封装框架Sim.js解析(1)
- linux下gdb调试器使用学习-03
- hdoj--2187--悼念512汶川大地震遇难同胞——老人是真饿了(贪心)
- dz会员找回密码提示参数错误的解决方案
- USACO第一题RIDE,我的飞船在哪里
- 新线程的回调函数也可以是有一个Lambda表达式的形式
- hdoj 又一版 A+B 1877 (机制转换)