高效的定时器算法

How*_*May 7 algorithm timer

实现简单计时器库的最佳算法是什么?该库应该允许以下内容:

  1. 定时器即将开始
  2. 定时器被停止
  3. 定时器要检查它们是否仍在运行

在定时器到期时,将调用回调函数.

定时器模块将允许定时器具有Ns的时间分辨率,并且模块应每Ns被踢一次以提示模块检查过期的定时器.

许多计时器可能同时处于活动状态.

最好的算法需要满足以下目标

  1. 在处理定时器到期回调时,启动/停止定时器是非常强大的
  2. 允许定时器快速启动,停止和检查
  3. 占用内存很少

问候

use*_*291 12

我在定时器中看到的最佳算法是在研究论文中找到的定时器轮子Hashed和Hierarchical Timing Wheels:用于高效实现定时器设备的数据结构

我知道在Java中有一个Netty,JBoss的实现,如果你是用Java编写的话,我在其他地方也确定你可以使用它.

  • 引用的论文讨论了不同的计时器算法以及它们的适当使用场合。如果链接将来失败,那么了解标题“散列和分层计时轮:用于高效实现计时器设施的数据结构”可能会有所帮助。 (2认同)