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将所有的就绪事件放入激活列表,然后对激活列表中的事件,调用事件回调函数执行事件处理
本博客内容均来自网络,如有雷同,是我抄袭!