執行緒的控制(建立,終止,等待,分離)

2021-09-28 22:21:36 字數 1501 閱讀 2594

功能:建立乙個新的執行緒

原型: int

pthread_create

(pthread_t *thread,

const pthread_attr_t *attr,

void

*(start_routine)

(void*)

,void

* arg)

;引數:

thread:返回執行緒id

attr:設定執行緒的屬性,attr為null表示使用預設屬性

arg:傳給執行緒啟動函式的引數

返回值:成功返回0,失敗返回錯誤碼

錯誤檢查:

讓我們寫乙個**來用一下這個執行緒:

#include

#include

#include

#include

#include

void

*rout

(void

*arg)

}int

main()

int i;

for(;;

)}

如果需要只終止某個執行緒而不終止整個程序,可以有三種方法:

從執行緒函式return。這種方法對主線程不適用,從main函式return相當於呼叫exit。

執行緒可以呼叫pthread_ exit終止自己

乙個執行緒可以呼叫pthread_ cancel終止同一程序中的另乙個執行緒

功能:執行緒終止 

原型 void

pthread_exit

(void

*value_ptr)

; 引數

value_ptr:value_ptr不要指向乙個區域性變數。

返回值:無返回值,跟程序一樣,執行緒結束的時候無法返回到它的呼叫者(自身

功能:等待執行緒結束 

原型

intpthread_join

(pthread_t thread,

void

**value_ptr)

; 引數

thread:執行緒id

value_ptr:它指向乙個指標,後者指向執行緒的返回值

返回值:

成功返回0;

失敗返回錯誤碼

呼叫該函式的執行緒將掛起等待,直到id為thread的執行緒終止。thread執行緒以不同的方法終止,通過pthread_join得到的終 止狀態是不同的,總結如下:

int

pthread_detach

(pthread_t thread)

;

可以是執行緒組內其他執行緒對目標執行緒進行分離,也可以是執行緒自己分離:

pthread_detach(pthread_self());

joinable和分離是衝突的,乙個執行緒不能既是joinable又是分離的。

執行緒終止 等待 分離

執行緒終止有三種方式,包括 1.從執行緒函式return 對主線程不可使用 從main函式return相當於呼叫exit。2.執行緒可以呼叫pthread exit終止自己。3.乙個執行緒可以呼叫pthread cancel終止同一程序中的另外乙個執行緒。我們來認識幾個函式 pthread exit...

執行緒終止 等待 分離的方式講解

執行緒終止有三種方式,包括 1.從執行緒函式return 對主線程不可使用 從main函式return相當於呼叫exit。2.執行緒可以呼叫pthread exit終止自己。3.乙個執行緒可以呼叫pthread cancel終止同一程序中的另外乙個執行緒。我們來認識幾個函式 pthread exit...

Linux程序控制(建立 等待 終止)

一 linux程序建立 1.1 fork函式 在linux中fork函式是乙個非常重要的函式,它從已存在程序中建立了乙個新程序。新程序為子程序,而原程序為父程序 include pid t fork void 返回值 自程序中返回0,父程序返回子程序id,出錯返回 1 程序呼叫fork,當控制轉移到...