建立執行緒,等待執行緒終止
分離執行緒pthread_detach()可以顯式用於分離執行緒,儘管建立時是可連線的。
建立乙個執行緒預設的狀態是joinable, 如果乙個執行緒結束執行但沒有被join,則它的狀態類似於程序中的zombie process,即還有一部分資源沒有被**(退出狀態碼),所以建立執行緒者應該使用pthread_join()來等待執行緒執行結束,並可得到執行緒的退出**,**其資源(類似於wait,waitpid)。但是呼叫pthread_join()後,如果該執行緒沒有執行結束,呼叫者會被阻塞,在有些情況下我們並不希望如此,比如在web伺服器中當主線程為每個新來的鏈結建立乙個子執行緒進行處理的時候,主線程並不希望因為呼叫pthread_join而阻塞(因為還要繼續處理之後到來的鏈結),這時可以在子執行緒中加入**
pthread_detach(pthread_self());
或在主線程中呼叫
pthread_detach(thread_id);//非阻塞,可立即返回
這將使該子執行緒的狀態設定為detached,則該執行緒執行結束後會自動釋放所有資源。
#include
#include
#include
int count = 0;
void print()
int main()
return
0;}
執行緒優先順序
參考 linux多執行緒程式設計講稿
多執行緒程式設計指南
執行緒終止 等待 分離
執行緒終止有三種方式,包括 1.從執行緒函式return 對主線程不可使用 從main函式return相當於呼叫exit。2.執行緒可以呼叫pthread exit終止自己。3.乙個執行緒可以呼叫pthread cancel終止同一程序中的另外乙個執行緒。我們來認識幾個函式 pthread exit...
執行緒的控制(建立,終止,等待,分離)
功能 建立乙個新的執行緒 原型 int pthread create pthread t thread,const pthread attr t attr,void start routine void void arg 引數 thread 返回執行緒id attr 設定執行緒的屬性,attr為nu...
LINUX多執行緒程式設計之建立,等待,取消執行緒
h7n9禽流感來啦,多人死亡,又感覺到了03年我在北京時的非典氣氛。家裡菜桌上肉明顯沒了。睡一覺起來,肚子裡再沒有肉貨,清明節學習的計畫不能停止!現在進入多執行緒學習啦。由於linux程序間的通訊占用資源蠻大的,所以設定了執行緒函式,只複製棧,其它同享。當然,執行緒之間,也存在著同步機制啦 互斥鎖,...