pthread_attr_init 子例程
用途
创建一个线程属性对象并使用缺省值进行初始化。
库
线程库 (libpthreads.a)
语法
#include <pthread.h> int pthread_attr_init ( attr)
pthread_attr_t *attr;
pthread_attr_t *attr;
描述
pthread_attr_init 子例程创建新的线程属性对象 attr。 新线程属性对象将使用以下缺省值进行初始化:
始终初始化
| 属性 | 缺省值 |
|---|---|
| Detachstate | PTHREAD_CREATE_JOINABLE |
| 争用作用域 | PTHREAD_SCOPE_SYSTEM 缺省值确保与不支持此 POSIX 选项的实现兼容。 |
| Inheritsched | pthread_inheritsched |
| Schedparam | sched_param 结构sched_prio字段设置为 1 ,这是最不被看好的优先级。 |
| Schedpolicy | SCHED_OTHER |
| Stacksize | pthread_stack_min |
| Guardsize | PAGESIZE |
生成的属性对象 (可能通过设置个别属性值进行修改) 在由 pthread_create使用时,定义所创建线程的属性。 单个属性对象可以在对 pthread_create的多个同时调用中使用。
参数
| 项 | 描述 |
|---|---|
| attr | 指定要创建的线程属性对象。 |
返回值
成功完成后,将使用缺省值填充新的线程属性对象,并通过 attr 参数返回该对象,然后返回 0。 否则,将返回错误代码。
错误代码
如果以下情况成立,那么 pthread_attr_init 子例程不成功:
| 项 | 描述 |
|---|---|
| EINVAL | attr 参数无效。 |
| ENOMEM | 没有足够的内存来创建线程属性对象。 |
此函数不会返回错误代码 [EINTR]。