libevent学习 事件流程

使用libevent设置定时器

1 首先应用程序准备并初始化event,设置好事件类型和回调函数

     a. evet_init() 初始化libevent库 相当于初始化一个Reactor实例

     b. event_set()  设置回调函数和关注的事件

     c  event_base_set()  设置event从属的event_base

2 向libevent添加该事件event,对于定时事件,libevent使用小根堆管理,key为超时时间,对于信号量和i/o事件,libevent将其放入到等待链表中,是一个双向链表结构

     a event_add 添加事件 相当于Reactor::register_handler()函数注册事件

3 程序调用event_base_dispatch()系列函数进入无限循环,等待事件,libevent将所有的就绪事件放入激活列表,然后对激活列表中的事件,调用事件回调函数执行事件处理

posted on 2014-04-02 21:33  kangbry  阅读(234)  评论(0编辑  收藏  举报

导航