2011-08-12 68 views

回答

0

我認爲你正在尋找gettid()

pthread_self() man page說明:由pthread_self()返回的線程ID是不一樣的東西通過調用返回gettid(2)內核線程ID。你打印的東西看起來像一個pthread ID。

+0

我知道我可以使用pthread調用來獲取* current * tid,但問題是我實際上使用的庫是返回它管理的線程的RWThreadId,我無法訪問,所以這就是爲什麼我試圖從一種類型的線程ID轉換爲基於Linux的普通Linux。 – naumcho

+0

pthread id和內核線程ID是兩個不同的實體。您似乎可以訪問前者,但希望訪問後者。據推測RogueWave爲您提供了一些方法來指定將在線程中運行的函數/方法。您需要在該方法中放置gettid()以返回內核標識或至少將其顯示在日誌中。如果你在說線程正在運行一些你不能改變的庫代碼,那麼你可能確實是SOL。 – Duck