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 |
0 |
新线程具有系统定义的栈大小。 |
priority |
0 |
新线程的优先级为 0。 |
inheritsched |
PTHREAD_EXPLICIT_SCHED |
新线程不继承父线程调度优先级。 |
schedpolicy |
SCHED_OTHER |
新线程对同步对象争用使用 Solaris 定义的固定优先级。线程将一直运行,直到被抢占或者直到线程阻塞或停止为止。 |