我们有一个处理事件定时器的API。这个API说它使用OS回调来处理定时事件(显然使用select())。Unix中的C++定时器
的API权利要求执行的该顺序,以及: 可读事件 可写事件 计时器事件
这通过创建指向一个定时器对象,但传递创建功能的功能回调:
沿着这些线:
Timer* theTimer = Timer::Event::create(timeInterval,&Thisclass::FunctionName);
我想知道这是如何工作的?
操作系统正在处理定时器本身,并且当它看到它被触发时它如何实际调用回调?回调是否在单独的执行线程中运行?
当我在回调函数(Thisclass :: FunctionName)中放置一个pthread_self()调用时,它看起来与自己创建Timer的线程具有相同的线程ID! (由此非常困惑)
另外:以上的优先级列表是什么意思?什么是可写事件vs可读事件vs计时器事件?
也赞赏在这种情况下使用select()的任何解释。
谢谢!
链接到相关API的文档会很有帮助等待所有计时器。如果它是一些内部的东西,请阅读源代码;有许多方法可以实施。 – bdonlan 2009-08-03 15:45:17