原文转自:http://www.tanjp.com (即时修正和更新)
什么时候需要定时器?
我们都知道程序是能快速运算出结果,几乎在一瞬间就可以把结果算出来。但是这个前提是所有输入条件都拿到手的情况下,如果有些输入条件 A 你并不知道什么时候能符合,那怎么办?写一个whlie循环一直检查?这样无疑很浪费CPU,显然行不通。
有经验程序员可以已经想到办法,把这些等待输入条件 A, B, C, …等等全部记录起来,在其他相关事件触发时,顺便检查一下这些输入条件是否满足?如果满足就执行某个函数,否则下次再检查一次。这种做法,一般的业务系统都是可实现的。但是会导致代码繁琐而且也不好维护,并且当检查条件多了会导致系统性能大幅下降。这时候,就需要使用定时器来定时检查。
还有一种情况是,假设某个游戏战斗逻辑,一个法术攻击使得某个区域内中毒,持续时间从[t1, t2]。也就是说,在未来确定的时间点会发生某些事情的时候,就要在未来的某个时间点添加定时器事件。

时间轮是一种高效的定时器策略,用于在未来特定时间点触发事件。文章介绍了何时需要定时器,详细讲解了时间轮的工作原理,并提供了C++的代码实现,通过实例展示了如何创建和使用时间轮。此外,还讨论了时间轮的升级和降级机制,以及在不同时间跨度的多层时间轮组合使用。
最低0.47元/天 解锁文章
1154

被折叠的 条评论
为什么被折叠?



