event_base在使用Libevent之前,需要初始化一个event_base结构。每一个event_base结构提包含了events集合并选择事件类型。如果选择locking方式,会保证交互是线程安全的。如果需要使用多线程模型的话,需要为每一个线程建立一个event_base。method种类...
分类:
其他好文 时间:
2015-01-29 11:50:05
阅读次数:
267
转自:http://name5566.com/4198.html参考文献列表:http://www.wangafu.net/~nickm/libevent-book/此文编写的时候,使用到的 Libevent 为 2.0.21。本文略过了关于 event 优先权和超时相关的讨论。创建和销毁 even...
分类:
其他好文 时间:
2015-01-27 18:09:11
阅读次数:
192
event loop
事件循环
一旦你向event_base注册了一些event,那你接下来希望Libevent等待事件的发生并且通知你。
接口
#define EVLOOP_ONCE 0x01
#define EVLOOP_NONBLOCK 0x02
#define EVLOOP_NO_EXIT_ON_EMPTY 0x04
int event_b...
分类:
其他好文 时间:
2015-01-27 13:32:52
阅读次数:
286
构建event_base
在你开始使用任何Libevent前,你需要先创建一个或多个event_base。每个event_base管理着一个event的集合,并可以检测出哪些event被激活了。如果event_base使用了锁,就可以在多线程中安全的访问它。但要注意它的主poll函数只能被单个线程运行。如果你想用多个线程运行IO迭代器,你需要为每个线程分配一个event_base。
注:在以后...
分类:
其他好文 时间:
2015-01-22 23:25:34
阅读次数:
412
多线程模式其实这个早看过了,在复习一下主线程创建四个子线程,一个线程一个event_base,专门派发这个有个监听线程,在监听线程收到连接之后轮询选择一个线程就交给他处理了,其实就这么简单在看看包走向客户端发过来的加入以登录为例(不知客户端是不是走这一套)1.先打包成protocol形式2.在liv...
分类:
其他好文 时间:
2014-11-16 20:03:29
阅读次数:
267
libevent源码深度剖析七——事件主循环张亮
现在我们已经初步了解了libevent的Reactor组件——event_base和事件管理框架,接下来就是libevent事件处理的中心部分——事件主循环,根据系统提供的事件多路分发机制执行事件循环,对已注册的就绪事件,调用注册事件的回调函数来处理...
分类:
其他好文 时间:
2014-05-16 09:19:19
阅读次数:
337
libevent源码深度剖析六——初见事件处理框架张亮前面已经对libevent的事件处理框架和event结构体做了描述,现在是时候剖析libevent对事件的详细处理流程了,本节将分析libevent的事件处理框架event_base和libevent注册、删除事件的具体流程,可结合前一节libe...
分类:
其他好文 时间:
2014-05-14 08:34:48
阅读次数:
377