2012-02-17 62 views
0

我有多個線程正在運行(pthreads api),每個線程都有自己的計時器,它在特定時間間隔後調用函數處理程序(int signum)。當這些線程調用處理函數並在函數處理函數中時,我怎麼知道哪個線程調用了它?是否需要線程特定的數據?指示處理程序(定時器)何時調用哪個線程?

回答

1

您可以使用pthread_self()函數來獲得當前線程的ID。

0

如果你想知道的是執行哪個線程,pthread_self()來獲得你唯一的線程ID應該是你所需要的。這就是說,不知道你的計時器實現,如果你需要更多的ID,我只需要從它自己的上下文作爲參數傳遞給處理程序的對象中的pthread傳遞。這將允許您傳遞任何數據,而不訴諸於pthread_setspecific()/pthread_getspecific()

相關問題