定时器实现
定时器
目的
- 处理某些延后处理事件
- 常用于并发网络编程
实现方案
- 数据结构:红黑树、时间轮、最小堆
- 检测机制:timerfd(将定时器作为事件使用epoll)
定时器结点
struct TimerNodeBase { |
定时器结构
class Timer { |
对外接口
- AddTimeout:增加定时器设置超时时间和触发函数
- DelTimeout:删除定时器
- UpdateTimeout:使用timefd_settime检测是否有定时器到期
- HandleTimer:执行到期任务,遍历所有符合条件的Timer
TimerNodeBase AddTimeout(int msec, TimerNode::Callback func) { |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 LZY的Code生活!