在我正在开发的基于unix pthreads的应用程序中,我在多个线程中创建了一个特定类(称为类foo)的对象。我需要在对象60年代或之后调用的类foo的特定公共方法(它不是必须在60秒时发生,只是它发生在60年代或之后不久)。
我可以用什么定时器来实现这个目标?寻找一些我可以直接进入我的班级foo或我可以从中得到的东西。
唯一真正的要求是它是线程安全的。
答案 0 :(得分:0)
有各种特定于平台的机制,允许您在给定时间强制中断线程,具体取决于与线程状态相关的各种特定于平台的前提条件。除非你真的需要它们并知道原因,否则这些都是一个坏主意。
根据您的问题中的信息,正确的解决方案是简单地检查经过的时间。据推测,这些线程在某种循环中做了一些工作。作为此循环的一部分,您应该调用例如foo :: tick()然后勾选检查以查看是否已经过了60秒。
答案 1 :(得分:0)
为什么不在构造函数中增加类中的静态成员(当然有适当的保护),而不是使用计时器?当静态成员达到60时,要么调用发生条件的成员或标志,要么在别处调用。