libevent 读书笔记
来源:互联网 发布:众悦学车软件 编辑:程序博客网 时间:2024/06/16 12:02
libevent 一个很好的底层网路库 事件库
libevent 就是reactor :事件处理程序、事件源、reactor 框架、多路复用机制
1 事件源: Linux上是文件描述符,Windows上就是Socket或者Handle了,这里统一称为“句柄集”;程序在指定的句柄上注册关心的事件,比如I/O事件。
2 event demultiplexer——事件多路分发机制:由操作系统提供的I/O多路复用机制,比如select和epoll。程序首先将其关心的句柄(事件源)及其事件注册到event demultiplexer上;当有事件到达时,event demultiplexer会发出通知“在已经注册的句柄集中,一个或多个句柄的事件已经就绪”;程序收到通知后,就可以在非阻塞的情况下对事件进行处理了。
对应到libevent中,依然是select、poll、epoll等,但是libevent使用结构体eventop进行了封装,以统一的接口来支持这些I/O多路复用机制,达到了对外隐藏底层系统机制的目的。
3 反应器:Reactor,是事件管理的接口,内部使用event demultiplexer注册、注销事件;并运行事件循环,当有事件进入“就绪”状态时,调用注册事件的回调函数处理事件。
对应到libevent中,就是event_base结构体。
4 事件处理程序:事件处理程序提供了一组接口,每个接口对应了一种类型的事件,供Reactor在相应的事件发生时调用,执行相应的事件处理。通常它会绑定一个有效的句柄。对应到libevent中,就是event结构体。
Reactor事件处理流程Reactor事件处理流程
0 0
- libevent读书笔记
- libevent 读书笔记
- libevent
- libevent
- libevent
- libevent
- libevent
- libevent
- libevent
- libevent
- libevent
- libevent
- libevent
- libevent
- libevent
- libevent
- libevent
- libevent
- 字符串的截取
- 数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
- GIS习题:制作一个上海地铁(进一步考虑到公交)的最佳点到点路径规划生成算法?
- Js 中关于注册表单,使用onsubmit进行拦截提交,并判断用户填写的内容是否正确
- Perfect Permutation
- libevent 读书笔记
- 一位IT程序员的心声:我们是无耻之徒吗?
- Matlab:Unable to start the JVM because of an invalid Java option.
- extjs传值丢失问题
- Linux 下log4cxx环境配置
- 使用WindowManager.LayoutParams的x和y设置窗体位置
- grep正则表达式-高级
- 无法安装 Visual Studio 2010 Service Pack 1,因为此计算机的状态不支持
- 一些java资源