初始化:
int
pthread_attr_init
(pthread_attr_t *attr)
;//按照預設設定初始化
去初始化:
int
pthread_attr_destroy
(pthread_attr_t *attr)
;//還原設定
結構體:
typedef sturct pthread_attr_t;
pthread_create_detached
pthread_create_joinable //(預設)
表示新執行緒是否與程序中的其他執行緒脫離同步。
tips:detach有什麼用?
如果是joinable,則執行緒退出後不會自動**資源(包括 8m 的堆疊空間和執行緒描述符等),
detach後,執行緒會在退出時自動**資源。
所以,在主線程不需要通過pthread_join來獲得子執行緒的退出狀態時,一律detach掉。
sched_other //(預設)非實時,正常
sched_rr //實時,輪轉法
sched_fifo //實時,先入先出
執行緒排程策略。
後兩種僅對root超級使用者有效。
此引數僅在實時排程下才有效(sched_rr、sched_fifo)。
pthread_explicit_sched //(預設)顯式指定自己的排程策略和排程引數
pthread_inherit_sched //繼承呼叫者執行緒的值(排程策略和排程引數)
pthread_scope_system //(預設)(目前linux下僅支援此配置)與系統中的所有執行緒競爭cpu
pthread_scope_process //只與程序中的執行緒競爭cpu
表示執行緒間競爭cpu的範圍。
linux提供了一組函式用於操作 pthread_attr_t :
pthread_attr_get***(); //用於獲取舊的設定項
pthread_attr_set***(); //用於傳入新的設定項
例如:
pthread_attr_t *attr;
pthread_attr_setdetachstate
(*attr, phtread_create_detached)
;
static
void
ntycloneattributes
(pthread_attr_t *new_attr, pthread_attr_t *old_attr)
pthread_attr_setdetachstate
(new_attr, pthread_create_detached)
;}
linux 執行緒 執行緒屬性
typedef struct pthread attr t 這個結構只是為了說明 實際結構具體系統而定 雖然如此我們並不用擔心因為 屬性值不能直接設定,須使用相關函式進行操作 int pthread attr init pthread attr t attr 初始化執行緒屬性 int pthread...
執行緒屬性總結 執行緒的api屬性
執行緒屬性結構如下 typedef struct pthread attr t 屬性值不能直接設定,須使用相關函式進行操作,初始化的函式為pthread attr init,這個函式必須在pthread create函式之前呼叫。之後須用pthread attr destroy函式來釋放資源。執行緒...
linux執行緒 2 執行緒屬性
執行緒屬性由資料結構pthread attr t結構表示,其定義如下所示 typedef struct pthread attr t 這個結構體在使用過程中由pthread attr init和pthread attr destory負責資料的初始化和銷毀 schepolicy 表示執行緒被排程的策...