muduo源码学习(二):定时器

TimerQueue定时器

在Reactor的基础之上,muduo又添加了定时器的功能。有了定时器,我们就可以将内部定时器事件或者编程者在程序中给定的一定时刻需要执行的任务,就是EVENTLOOP中的runAt run After runEvery等 与 外部的IO事件一起处理。

muduo的定时器功能主要由三个class实现:Timerid Timer TimerQueue,编程用户只能看见TimerId,其他两个类为内部实现。

在这个muduo中,所有的定时器事件都是共享同一个timerfd和同一个channel,有timerqueue统一管理,因此用timerID来标识不同的定时器,用timer记录每个定时器的固有属性的自己的特值。

TimerId

是一个标识符类,对用户可见,用户可以用它取消定时器

Timer

在这里插入图片描述

这个类定义了一些定时器的固有属性,包括定时器配套的回调函数,下一次的超时时刻,是否为重复定时器,若为重复定时器则每次超时的时间间隔是多少,已经当前定时器的序号,当前已经创建的定时器。
代码以及注释如下

  const TimerCallback callback_;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值