我們有一個處理事件定時器的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