2011-03-06 78 views
0

在我正在開發的基於unix pthreads的應用程序中,我有一個特定類(稱爲類foo)的對象在多個線程中創建。我需要一個特定的foo類公共方法,它在60年代或60年代之後被調用(這不是必須在60年代發生,而是發生在60年代或之後不久)。用於C++回調的線程安全計時器

有什麼計時器可用,我可以用來實現這一點的想法?尋找一些我可以放在我的班級foo或我可以派生出來的東西。

唯一真正的要求是它是線程安全的。

回答

0

有各種平臺特定的機制,這將允許您在給定時間強制中斷線程,具體取決於與線程狀態相關的各種平臺特定的先決條件。除非你真的需要它們並知道原因,否則這是一個壞主意。

正確的解決方案,考慮到您的問題中的信息,將只是檢查經過的時間。據推測這些線程在某種循環中做了一些工作。作爲這個循環的一部分,你應該打電話給foo :: tick(),然後在上勾選查看60s是否已經過期。

0

而不是使用計時器,爲什麼不在類的構造函數中增加一個靜態成員(當然有適當的保護)?當靜態成員達到60時,可以調用該成員或標誌該條件已發生並在其他地方調用。