多线程编程指南

pthread_attr_init 语法

int pthread_attr_init(pthread_attr_t *tattr);
#include <pthread.h>



pthread_attr_t tattr;

int ret;



/* initialize an attribute to the default value */

ret = pthread_attr_init(&tattr);

表 3–1 给出了属性 (tattr) 的缺省值。

表 3–1 tattr 的缺省属性值

属性

结果

scope

PTHREAD_SCOPE_PROCESS

新线程与进程中的其他线程发生竞争。 

detachstate

PTHREAD_CREATE_JOINABLE

线程退出后,保留完成状态和线程 ID

stackaddr

NULL

新线程具有系统分配的栈地址。 

stacksize

新线程具有系统定义的栈大小。 

priority

新线程的优先级为 0。 

inheritsched

PTHREAD_EXPLICIT_SCHED

新线程不继承父线程调度优先级。 

schedpolicy

SCHED_OTHER

新线程对同步对象争用使用 Solaris 定义的固定优先级。线程将一直运行,直到被抢占或者直到线程阻塞或停止为止。