執行緒屬性
執行緒具有屬性,用
pthread_attr_t
表示,在對該結構進行處理之前必須進行初始化,在使用後需要對其去除初始化。我們用
pthread_attr_init
函式對其初始化,用
pthread_attr_destroy
對其去除初始化。 .
名稱::pthread_attr_init/pthread_attr_destroy
功能:對執行緒屬性初始化
/去除初始化
標頭檔案:
#include
函式原形:
int pthread_attr_init(pthread_attr_t *attr);
int pthread_attr_destroy(pthread_attr_t *attr);
引數:attr
執行緒屬性變數
返回值:
若成功返回
0,若失敗返回-1。
呼叫pthread_attr_init
之後,pthread_t
結構所包含的內容就是作業系統實現支援的執行緒所有屬性的預設值。
如果要去除對
pthread_attr_t
結構的初始化,可以呼叫
pthread_attr_destroy
函式。如果
pthread_attr_init
實現時為屬性物件分配了動態記憶體空間,
pthread_attr_destroy
還會用無效的值初始化屬性物件,因此如果經
pthread_attr_destroy
去除初始化之後的
pthread_attr_t
結構被pthread_create
函式呼叫,將會導致其返回錯誤。
執行緒的分離狀態
執行緒的分離狀態決定乙個執行緒以什麼樣的方式來終止自己。在預設情況下執行緒是非分離狀態的,這種情況下,原有的執行緒等待建立的執行緒結束。只有當
pthread_join
()函式返回時,建立的執行緒才算終止,才能釋放自己占用的系統資源。
而分離執行緒不是這樣子的,它沒有被其他的執行緒所等待,自己執行結束了,執行緒也就終止了,馬上釋放系統資源。程式設計師應該根據自己的需要,選擇適當的分離狀態。所以如果我們在建立執行緒時就知道不需要了解執行緒的終止狀態,則可以
pthread_attr_t
結構中的
detachstate
執行緒屬性,讓執行緒以分離狀態啟動。 名稱
::pthread_attr_getdetachstate/pthread_attr_setdetachstate
功能:獲取
/修改執行緒的分離狀態屬性
標頭檔案:
#include
函式原形:
int pthread_attr_getdetachstate(const pthread_attr_t * attr,int *detachstate);
int pthread_attr_setdetachstate(pthread_attr_t *attr,int detachstate);
引數:attr
執行緒屬性變數
detachstate
執行緒的分離狀態屬性
返回值:
若成功返回
0,若失敗返回-1。
可以使用
pthread_attr_setdetachstate
函式把執行緒屬性
detachstate
設定為下面的兩個合法值之一:設定為
pthread_create_detached,
以分離狀態啟動執行緒;或者設定為
pthread_create_joinable,
正常啟動執行緒。可以使用
pthread_attr_getdetachstate
函式獲取當前的
datachstate
執行緒屬性。
#include
#include
#include
#define size 1024
void* child_thread(void* arg)
int main(int argc, char* argv) 名稱
::pthread_attr_getdetachstate/pthread_attr_setdetachstate
功能:獲取
/修改執行緒的分離狀態屬性
標頭檔案:
#include
函式原形:
int pthread_attr_getdetachstate(const pthread_attr_t * attr,int *detachstate);
int pthread_attr_setdetachstate(pthread_attr_t *attr,int detachstate);
引數:attr
執行緒屬性變數
detachstate
執行緒的分離狀態屬性
返回值:
若成功返回
0,若失敗返回-1。
可以使用
pthread_attr_setdetachstate
函式把執行緒屬性
detachstate
設定為下面的兩個合法值之一:設定為
pthread_create_detached,
以分離狀態啟動執行緒;或者設定為
pthread_create_joinable,
正常啟動執行緒。可以使用
pthread_attr_getdetachstate
函式獲取當前的
datachstate
執行緒屬性。
linux 執行緒 執行緒屬性
typedef struct pthread attr t 這個結構只是為了說明 實際結構具體系統而定 雖然如此我們並不用擔心因為 屬性值不能直接設定,須使用相關函式進行操作 int pthread attr init pthread attr t attr 初始化執行緒屬性 int pthread...
Linux執行緒屬性
執行緒屬性識別符號 pthread attr t 包含在 pthread.h 標頭檔案中。typedef struct pthread attr t 屬性值不能直接設定,須使用相關函式進行操作,初始化的函式為pthread attr init,這個函式必須在pthread create函式之前呼叫。...
linux執行緒 2 執行緒屬性
執行緒屬性由資料結構pthread attr t結構表示,其定義如下所示 typedef struct pthread attr t 這個結構體在使用過程中由pthread attr init和pthread attr destory負責資料的初始化和銷毀 schepolicy 表示執行緒被排程的策...