執行緒的分離狀態

2021-07-28 02:09:39 字數 818 閱讀 8342

執行緒的分離狀態是執行緒的一種屬性,執行緒的屬性結構為:

typedef struct

int detachstate; //分離狀態

int schedpolicy; //排程策略

structsched_param schedparam; //排程引數

int inheritsched; //執行緒繼承性

int scope; //執行緒作用域

size_t guardsize; //執行緒棧末尾的警戒緩衝區大小

int stackaddr_set;

void* stackaddr; //執行緒棧位置

size_t stacksize; //執行緒棧大小

} pthread_attr_t;

執行緒的分離狀態是指執行緒的生命結束後資源的**是否受其他執行緒或者程式主線程的控制,預設的執行緒分離狀態為結合狀態(join-able),需要由其他執行緒呼叫pthread_join(pthread_t pth, void** rval)等待執行緒pth終止,並**執行緒占用的系統資源,但是等待執行緒會被阻塞,直到監控的執行緒終止。如果沒有執行緒呼叫pthread_join函式,那麼建立的執行緒資源在程式結束前不會被系統自動**。對於detach狀態的執行緒,執行緒終止後系統會自動**執行緒占用的資源。

可以通過pthread_getdetachstate函式獲取執行緒的分離狀態,也可以通過pthread_setdetachstate函式設定執行緒的分離狀態。

執行緒的分離狀態

執行緒的分離狀態決定乙個執行緒以什麼樣的方式來終止自己。執行緒的預設屬性是非分離狀態,這種情況下,原有的執行緒等待建立的執行緒結束。只有當 pthread join 函式返回時,建立的執行緒才算終止,才能釋放自己占用的系統資源。而分離執行緒不是這樣子的,它沒有被其他的執行緒所等待,自己運 行結束了,...

執行緒的分離狀態

執行緒的分離狀態決定乙個執行緒以什麼樣的方式來終止自己。執行緒的預設屬性,一般是非分離狀態,這種情況下,原有的執行緒等待建立的執行緒結束。只有當pthread join 函式返回時,建立的執行緒才算終止,才能釋放自己占用的系統資源。而分離執行緒沒有被其他的執行緒所等待,自己執行結束了,執行緒也就終止...

執行緒的分離狀態

執行緒的分離狀態決定乙個執行緒以什麼樣的方式來終止自己。執行緒的預設屬性,一般是非分離狀態,這種情況下,原有的執行緒等待建立的執行緒結束。只有當pthread join 函式返回時,建立的執行緒才算終止,才能釋放自己占用的系統資源。而分離執行緒沒有被其他的執行緒所等待,自己執行結束了,執行緒也就終止...