pthread終止執行緒(linux程式設計)

2021-10-05 22:52:00 字數 734 閱讀 3078

linux終止執行緒

正常情況下,執行緒一旦建立便從指定函式開始執行直到該函式返回。一旦該函式返回,這些執行緒便自行終止。執行緒也可以在執行的途中通過呼叫pthread_exit()終止自己的執行。實際上,非初始執行緒(這裡只main函式的執行緒)從開始函式返回是返回到執行緒庫中,由執行緒庫隱含地呼叫函式pthread_exit(),並用開始函式的返回值作為執行緒的出口狀態。但是,初始執行緒則不然。初始執行緒如果也呼叫相同的開始函式,在這個函式沒有明顯呼叫pthread_exit()的情況下,它將正常返回到其呼叫點。

執行緒終止並不釋放任何程序相關的資源,如檔案描述符、共享儲存、檔案鎖等,也不執行任何程序級別的清理動作,包括呼叫atexit()註冊的函式。

注意不能隨便用exit()來終止乙個執行緒。exit()的作用是終止整個程序的執行,從而也會終止所有仍在工作的執行緒。當乙個程序的所有執行緒都已終止時,系統會自動呼叫exit()終止該程序。當所有執行緒都通過pthread_exit()終止時,程序便自動終止了,就好像呼叫了exit()一樣。

但是,初始執行緒從main()返回時,系統也會自動地呼叫exit()。因此,在多執行緒情況下,初始執行緒從main()函式返回之前,要麼必須保證所有執行緒都已經終止,要麼必須顯式地呼叫pthread_exit()。如果簡單地返回,講話導致終止其他正在執行的執行緒。

執行緒從開始函式返回或者呼叫pthread_exit(0而終止都是自行終止,除此之外,乙個執行緒也可以被其他執行緒終止。

當執行緒終止時,任何已經壓入但還未彈出的清理控制代碼將按其壓入的逆序被執行。

C C 多執行緒程式設計之四 終止pthread執行緒

多執行緒程式設計之終止pthread執行緒 pthread是posix threads的簡稱,是posix的執行緒標準。終止執行緒似乎是多執行緒程式設計的最後一步,但絕不是本系列教材的結束。執行緒建立到執行緒終止,希望先給讀者乙個關於多執行緒程式設計的整體認識。1.終止pthread執行緒 pthr...

pthread 執行緒庫

ubuntu 下沒有pthread庫 man不到相關函式 只需兩條命令搞定!sudo apt get install glibc doc sudo apt get install manpages posix dev 然後在用man k pthread create就可以找到了 pthread執行緒...

執行緒建立pthread

執行緒建立函式 int pthread create pthread t restrict tidp 指向執行緒識別符號的指標 const pthread attr t restrict attr 設定執行緒屬性 void start rtn void 執行緒執行函式的起始位址 void restr...