pthread_attr_t 线程属性

先看个案例

分离属性

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
#include <pthread.h>

void *tfn(void *arg)
{
    int n = 3;
    while (n--)
    {
        printf("thread count %d\n", n);
        sleep(1);
    }
    pthread_exit((void *)1);
}

int main(void)
{
    pthread_t tid;
    void *tret;
    int err;
#if 1
    pthread_attr_t attr;            /*通过线程属性来设置游离态*/
    pthread_attr_init(&attr);
    pthread_attr_setdetachstate(&attr,  PTHREAD_CREATE_DETACHED);
    pthread_create(&tid, &attr, tfn, NULL);
    pthread_attr_destroy(&attr);
#else
    pthread_create(&tid, NULL, tfn, NULL);
    pthread_detach(tid);         //让线程分离  ----自动退出,无系统残留资源
#endif
    while (1)
    {
        sleep(1);
        err = pthread_join(tid, &tret);
        if (err != 0)
            fprintf(stderr, "thread_join error: %s\n", strerror(err));
        else
            fprintf(stderr, "thread exit code %d\n", (int)tret);
    }
    return 0;
}


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_SCOPE_PROCESS(进程内竞争资源)

 PTHREAD_SCOPE_SYSTEM   (系统级竞争资源)  设置内核级的线程,以获取较高的响应速度


线程堆栈大小

pthread_attr_setstackaddr

 centos 中ulimit -s 是10M

最多打开文件数 ulimit -n
















参考 http://blog.csdn.net/scanery/article/details/7242768

         http://www.cnblogs.com/jiangwang2013/p/3578980.html

         http://www.cnblogs.com/qq78292959/archive/2012/03/29/2423821.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值