列印執行緒ID

2021-05-23 17:45:43 字數 629 閱讀 8008

通過本程式掌握:

1.執行緒的建立函式pthread_creat();

2.獲取程序id的函式:getpid();

3.執行緒可以通過呼叫pthread_self函式獲得自身的執行緒id;

具體**如下:

在linux命令列下輸入如下語句生成可執行程式thread:

gcc thread.c -o thread -lpthread

執行thread:

./thread

執行結果如下:

main thread: pid is 17419,tid is 3302406880 (0xc4d6bae0)

new  thread: pid is 17419,tid is 1077938496 (0x40400940)

可見,兩個執行緒的程序id相同,執行緒id不同;先執行主線程,再執行其他執行緒。

注意:需要處理主線程和新執行緒之間的競爭。呼叫sleep()函式,使主線程休眠;如果主線程不休眠,它就可能退出,這樣在新執行緒有機會執行之前整個程序可能就已經終止了。 以下是沒有加sleep(1)函式的執**況:

main thread: pid is 17517,tid is 3504794336 (0xd0e6eae0)

可見只有主線程執行。

執行緒ID與執行緒ID

1 nptl標準 1.目前的執行緒實現是 native posix thread library,簡稱nptl 2.執行緒又被稱為輕量級程序。3.每乙個使用者態的執行緒,在核心之中都對應乙個排程實體也擁有自己的程序描述符 task struct結構體 4.程序內的所有執行緒呼叫 getpid 函式時...

執行緒 執行緒控制代碼 執行緒ID

什麼是控制代碼 控制代碼是一種指向指標的指標。我們知道,所謂指標是一種記憶體位址。應用程式啟動後,組成這個程式的各物件是住留在記憶體的。如果簡單地理解,似乎我們只要獲知這個記憶體的首位址,那麼就可以隨時用這個位址訪問物件。但是,如果您真的這樣認為,那麼您就大錯特錯了。我們知道,windows是乙個以...

執行緒 執行緒控制代碼 執行緒ID

什麼是控制代碼 控制代碼是一種指向指標的指標。我們知道,所謂指標是一種記憶體位址。應用程式啟動後,組成這個程式的各物件是住留在記憶體的。如果簡單地理解,似乎我們只要獲知這個記憶體的首位址,那麼就可以隨時用這個位址訪問物件。但是,如果您真的這樣認為,那麼您就大錯特錯了。我們知道,windows是乙個以...