libevent源码剖析-最小堆实现定时器
Libevent 源码下载可以去官网 githubLibevent使用堆来管理Timer事件,其key值就是事件的超时时间,源代码位于文件minheap-internal.h中。所有的数据结构书中都有关于堆的详细介绍,向堆中插入、删除元素时间复杂度都是O(lgN),N为堆中元素的个数,而获取最小key值(小根堆)的复杂度为O(1)。堆是一个完全二叉树,基本存储方式是一个数组。看函数名都挺好懂的,只是下面这个结构体变量命名比较坑....typedef struct min_heap...
原创
2020-05-17 10:50:04 ·
531 阅读 ·
0 评论