pthread_join

pthread_join

函式pthread_join pthread_join (pthread_t

函式簡介

函式pthread_join用來等待一個執行緒的結束。
頭檔案:#include <pthread.h>
函式原型為:
int pthread_join(pthread_t thread, void **retval);
第一個參數為被等待的執行緒標識符,第二個參數為一個用戶定義的指針,它可以用來存儲被等待執行緒的返回值。這個函式是一個執行緒阻塞的函式,調用它的函式將一直等待到被等待的執行緒結束為止,當函式返回時,被等待執行緒的資源被收回。如果執行成功,將返回0,如果失敗則返回一個錯誤號。

linux中的套用

Linux中,默認情況下是在一個執行緒被創建後,必須使用此函式對創建的執行緒進行資源回收,但是可以設定Threads attributes來設定當一個執行緒結束時,直接回收此執行緒所占用的系統資源,詳細資訊查看Threads attributes。
其實在Linux中,新建的執行緒並不是在原先的進程中,而是系統通過一個系統調用clone()。該系統copy了一個和原先進程完全一樣的進程,並在這個進程中執行執行緒函式。不過這個copy過程和fork不一樣。 copy後的進程和原先的進程共享了所有的變數,運行環境。這樣,原先進程中的變數變動在copy後的進程中便能體現出來。

pthread_join的套用

pthread_join使一個執行緒等待另一個執行緒結束。
代碼中如果沒有pthread_join主執行緒會很快結束從而使整個進程結束,從而使創建的執行緒沒有機會開始執行就結束了。加入pthread_join後,主執行緒會一直等待直到等待的執行緒結束自己才結束,使創建的執行緒有機會執行。
所有執行緒都有一個執行緒號,也就是Thread ID。其類型為pthread_t。通過調用pthread_self()函式可以獲得自身的執行緒號。

相關詞條

相關搜尋

熱門詞條

聯絡我們