12 3 執行緒屬性

2022-05-14 03:25:21 字數 1127 閱讀 6013

pthread介面允許我們通過設定與不同物件相關聯的屬性來微調執行緒以及同步物件的行為。通常來說,管理這些屬性的函式符合如下模式:

每乙個物件都有與其相關聯的屬性物件型別(執行緒由執行緒屬性,互斥鎖由互斥鎖屬性,等等),乙個屬性物件可以表示多個屬性。屬性物件對於應用程式來說是不透明的,也就是說應用程式並支援獲取屬性物件內部結構,這能夠促進應用程式的移植。取而代之的是,應用程式需要使用函式來對這些屬性進行管理。

乙個初始化函式用於設定屬性物件預設值;

另乙個函式用於釋放屬性物件。如果初始化函式為屬性物件分配了與屬性物件相關聯的任何資源,該函式都將會釋放掉這些資源;

每乙個屬性都由乙個函式用於獲取屬性物件的屬性值。該函式在成功的時候返回0,在失敗的時候返回錯誤編號,返回的屬性值通過其中乙個引數返回。

每一種屬性都由乙個函式用於設定乙個屬性值,在這種情況下,該數值通過引數value傳入。

在11章我們呼叫函式pthread_create的程式中,我們傳遞了乙個null指標給引數pthread_attr_t結構指標。事實上,我們可以使用pthread_attr_t結構來更改執行緒預設屬性,並將其與我們建立的執行緒關聯起來,我們使用函式pthread_attr_init函式來初始化pthread_attr_t結構,在呼叫函式pthread_attr_init之後,pthread_attr_t結構將會包含所有實現支援的執行緒屬性的預設值。

#include

int

pthread_attr_init

(pthread_attr_t

*attr

);

int

pthread_attr_destroy

(pthread_attr_t

*attr

);

both

return:0

ifok

,error number on failure

.

函式pthread_attr_destroy將會釋放掉初始化時分配的動態記憶體,並且設定屬性物件為無效數值,所以如果它被錯誤地使用,函式pthread_create將會返回乙個錯誤。

來自為知筆記(wiz)

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