執行緒屬性 pthread attr t 簡介

2021-10-13 19:52:29 字數 1541 閱讀 7129

初始化:

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 表示執行緒被排程的策...