pthread_attr_t——线程属性

posix线程中的线程属性pthread_attr_t 属性主要包括scope属性、detach属性、堆栈地址、堆栈大小、优先级。在pthread_create函数中第二个参数设置为NULL的时候,将采用默认属性设置;

线程属性如下:

typedef struct
      {
                   int                       detachstate;     线程的分离状态
                   int                       schedpolicy;     线程调度策略
                   struct sched_param        schedparam;      线程的调度参数
                   int                       inheritsched;    线程的继承性
                   int                       scope;           线程的作用域
                   size_t                    guardsize;       线程栈末尾的警戒缓冲区大小
                   int                       stackaddr_set;
                   void *                    stackaddr;       线程栈的位置
                   size_t                    stacksize;       线程栈的大小
    }pthread_attr_t;

线程的分离状态:表示新的线程是否与同一个进程中的其他线程脱离同步,如果设置为PTHREAD_CREATE_DETACHED,则新线程不能调用用pthread_join来同步,且在退出时自动释放所占用的资源;

默认的状态是PTHREAD_CREATE_JOINABLE

一旦设置了PTHREAD_CREATE_DETACHED,线程的状态就回不去了。

线程的分离状态决定线程终止的时候以什么样的方式终止自己。默认状态是非分离状态,这种状态下,原有的线程等待创建的线程结束,创建的线程调用了pthread_join返回后才算终止了自己的状态,占用的线程资源也会释放。分离线程没有被其他线程所等待,自己运行结束了,也就终止了,线程资源也会自动释放。

通过以下函数设置和获取线程的分离状态:

#include <pthread.h>

       int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate);
       int pthread_attr_getdetachstate(pthread_attr_t *attr, int *detachstate);

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值