优雅的方式执行许多闹钟?

时间:2014-01-18 15:34:28

标签: c++ clock

假设我有一个包含多个事件的确切未来时间的向量。我希望这些活动在他们各自的时间到来时启动。如果不经常使用if语句来检查当前时间是否是那些设定时间之一,我该怎么做?这种不断的检查,特别是如果在我的程序中运行许多其他东西(其中一些时间可能与现在相差一点)将降低我的程序的性能。我正在使用c ++ 11,最新版本的GCC。

1 个答案:

答案 0 :(得分:3)

如果您正在使用C ++ 11,那么创建一个线程可能最容易,让它一直睡到下一个闹钟时间。存储警报时间的最有效方法可能是优先级队列。

如果您没有可用的C ++ 11,则可以考虑使用Boost Threads。标准的线程基于Boost线程,因此使用它们将非常相似。

如果您不想使用它,您几乎需要使用操作系统工具来完成这项工作。几乎任何合理的现代操作系统,你都可以创建一个线程,让它睡到下一个闹钟时间,但你可能也会有一些东西可以更直接地支持你想要的东西(在指定的时间调用一个函数)。其细节将特定于操作系统。