通過本程式掌握:
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是乙個以...