六、執行緒的作用域
函式
pthread_attr_setscope
和pthread_attr_getscope
分別用來設定和得到執行緒的作用域,這兩個函式的定義如下: 7
.名稱::
pthread_attr_setscope
pthread_attr_getscope
功能:獲得
/設定執行緒的作用域
標頭檔案:
#include
函式原形:
int pthread_attr_setscope(pthread_attr_t *attr,int scope);
int pthread_attr_getscope(const pthread_attr_t *attr,int *scope);
引數:attr
執行緒屬性變數
scope
執行緒的作用域
返回值:
若成功返回
0,若失敗返回-1。
這兩個函式具有兩個引數,第
1個是指向屬性物件的指標,第
2個是作用域或指向作用域的指標,作用域控制線程是否在程序內或在系統級上競爭資源,可能的值是
pthread_scope_process
(程序內競爭資源)
pthread_scope_system.
(系統級上競爭資源)。
七、執行緒堆疊的大小
函式
pthread_attr_setstacksize
和pthread_attr_getstacksize
分別用來設定和得到執行緒堆疊的大小,這兩個函式的定義如下所示:8.
名稱::pthread_attr_getdetstacksize
pthread_attr_setstacksize
功能:獲得
/修改執行緒棧的大小
標頭檔案:
#include
函式原形:
int pthread_attr_getstacksize(const pthread_attr_t *restrict attr,size_t *restrict stacksize);
int pthread_attr_setstacksize(pthread_attr_t *attr ,size_t *stacksize);
引數:attr
執行緒屬性變數
stacksize
堆疊大小
返回值:
若成功返回
0,若失敗返回-1。
這兩個引數具有兩個引數,第
1個是指向屬性物件的指標,第
2個是堆疊大小或指向堆疊大小的指標
如果希望改變棧的預設大小,但又不想自己處理執行緒棧的分配問題,這時使用
pthread_attr_setstacksize
函式就非常用用。
八、執行緒堆疊的位址
函式
pthread_attr_setstackaddr
和pthread_attr_getstackaddr
分別用來設定和得到執行緒堆疊的位置,這兩個函式的定義如下:
9.名稱::
pthread_attr_setstackaddr
pthread_attr_getstackaddr
功能:獲得
/修改執行緒棧的位置
標頭檔案:
#include
函式原形:
int pthread_attr_getstackaddr(const pthread_attr_t *attr,void **stackaddf);
int pthread_attr_setstackaddr(pthread_attr_t *attr,void *stackaddr);
引數:attr
執行緒屬性變數
stackaddr
堆疊位址
返回值:
若成功返回
0,若失敗返回-1。
這兩個函式具有兩個引數,第
1個是指向屬性物件的指標,第
2個是堆疊位址或指向堆疊位址的指標。
九、執行緒棧末尾的警戒緩衝區大小
函式
pthread_attr_getguardsize
和pthread_attr_setguardsize
分別用來設定和得到執行緒棧末尾的警戒緩衝區大小,這兩個函式的定義如下:
10.名稱::
pthread_attr_getguardsize
pthread_attr_setguardsize
功能:獲得
/修改執行緒棧末尾的警戒緩衝區大小
標頭檔案:
#include
函式原形:
int pthread_attr_getguardsize(const pthread_attr_t *restrict attr,size_t *restrict guardsize);
int pthread_attr_setguardsize(pthread_attr_t *attr ,size_t *guardsize);
引數:返回值:
若成功返回
0,若失敗返回-1。
執行緒屬性
guardsize
控制著執行緒棧末尾之後以避免棧溢位的擴充套件記憶體大小。這個屬性預設設定為
pagesize
個位元組。可以把
guardsize
執行緒屬性設為
0,從而不允許屬性的這種特徵行為發生:在這種情況下不會提供警戒快取區。同樣地,如果對執行緒屬性
stackaddr
作了修改,系統就會假設我們會自己管理棧,並使警戒棧緩衝區機制無效,等同於把
guardsize
執行緒屬性設為0。
Posix多執行緒程式設計學習筆記(二) 執行緒屬性(2)
四 執行緒的排程策略 函式 pthread attr setschedpolicy 和pthread attr getschedpolicy 分別用來設定和得到執行緒的排程策略。4.名稱 pthread attr getschedpolicy pthread attr setschedpolicy ...
Posix多執行緒程式設計學習筆記(二) 執行緒屬性(2)
四 執行緒的排程策略 函式pthread attr setschedpolicy和pthread attr getschedpolicy分別用來設定和得到執行緒的排程策略。4.名稱 pthread attr getschedpolicy pthread attr setschedpolicy 功能 ...
Posix多執行緒程式設計學習筆記(二) 執行緒屬性(1)
一 執行緒屬性 執行緒具有屬性,用 pthread attr t 表示,在對該結構進行處理之前必須進行初始化,在使用後需要對其去除初始化。我們用 pthread attr init 函式對其初始化,用 pthread attr destroy 對其去除初始化。1 名稱 pthread attr in...