头文件:#include<pthread.h>
1 typedef struct
2 {
3 int etachstate; //分离状态
4 int schedpolicy; //调度策略
5 struct sched -param schedparam; //调度参数
6 int inheritsched; //继承性
7 size_t guardsize; //作用域
8 int stackaddr_set; //栈末尾的警戒缓冲区大小
9 void* stackaddr; //栈设置
10 size_t stacksize; //栈大小
11 }pthread_attr_t;
12
13 主要的三成员:
14 1.线程分离态 2.线程栈大小(默认平均分配) 3.线程栈警戒缓冲区大小(位于栈尾)
15
16 注意:应先初始化,再建线程;初始化线程属性后需要销毁线程属性所占的资源
17
18 初始化线程属性与销毁初始化属性
19 int pthread_attr_init(pthread_attr_t *attr);
20 int pthread_attr_destroy(pthread_attr_t *attr);
21 返回值:成功返回0;失败返回错误号
22
23 分离属性设置与查看分离属性
24 int pthread_attr_setdetachstate(pthread_attr_t *attr,int detachstate);
25 int pthread_attr_getdetachstate(pthread_attr_t *attr,int *detachstate);
26 attr:已初始化的线程属性
27 detachstate: 设置分离:PTHREAD_CREATE_DETACHED 设置非分离:PTHRAED_CREATE_JOINABLE
28 返回值:成功返回0;失败返回错误号
29 ##pthread_cond_timedwait():在分离状态里调用pthread_create时使用该函数,能防止系统线程号误用
30
31 栈地址设置,与查看栈地址
32 int pthread_attr_setstack(pthread_attr_t *attr,void *stackaddr,size_t stacksize);
33 int pthread_attr_getstack(pthread_attr_t *attr,void **stackaddr,size_t *stacksize);
34 stackaddr:返回获取的栈地址 stacksize:返回获取的栈大小
35 返回值:成功返回0;失败返回错误号
36
37 栈空间大小的设置与查看
38 int pthread_attr_setstacksize(pthread_attr_t *attr,siez_t stacksize);
39 int pthread_attr_getstacksize(pthread_attr_t *attr,siez_t stacksize);
40 返回值:成功返回0;失败返回错误号
41
42 NPTL:
43 1.查看当前pthread库版本:getconf GUN_LIDPTHREAD_VERSION
44 2.NPTL实现机制(posix),native POSIX Thread Library
45 3.使用线程库时gcc 指定 -lpthread
linux系统编程 线程属性的设置
最新推荐文章于 2024-07-23 20:58:56 发布