以设置分离属性为例:
设置线程属性中的分离属性步骤如下
1、 pthread_attr_t attr ; 创建一个线程属性结构体变量
2、 pthread_attr_init(&attr); 初始化线程属性
(可以没有) pthread_attr_getdetachstate(const pthread_attr_t *attr,int *detachstate);
获取线程分离状态属性
3、 pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED);设置线程属性为 分离态
4、 pthread_create(&tid,&attr,tfn,NULL);借助修改后的 设置线程属性 创建为分离态的新线程
5、 pthread_attr_destroy(&attr); 销毁线程属性
用代码实现为:
  1 #include <unistd.h>
  2 #include <stdio.h>
  3 #include <string.h>
  4 #include <stdlib.h>
  5 #include <unistd.h>
  6 #include <pthread.h>
  7 void *tfn(void *arg)
  8 {
  9         printf("child pthread:%ld\n",pthread_self());
 10         pthread_exit(NULL);
 11 }
 12 int main()
 13 {
 14         pthread_attr_t attr;
 15         pthread_attr_init(&attr);//初始化线程属性
 16         pthread_attr_setdetachstate(&attr,PTHREAD_CREATE_DETACHED);//设置为分离态
 17         pthread_t tid;
 18         int ret=pthread_create(&tid,&attr,tfn,NULL);//创建线程
 19         if(ret!=0)
 20         {
 21                 printf("error info:%s\n",strerror(ret));
 22                 exit(0);
 23         }
 24         printf("child:%ld,main:%ld\n",tid,pthread_self());
 25         size_t size;
 26         pthread_attr_getstacksize(&attr,&size);//获取线程大小
 27         printf("stack size:%ld\n",size);
 28         pthread_attr_destroy(&attr);//销毁线程
 29
 30         pthread_exit(NULL);
 31 }
 
运行结果为:

目前只是示例阶段,其作用只是跟pthread_detach()函数是一样的。










