线程属性API

Posted 会飞的小丑

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了线程属性API相关的知识,希望对你有一定的参考价值。

数据类型:pthread_attr_t

操作API:

// 初始化线程属性
int pthread_attr_init(pthread_attr_t *attr);// 初始化为系统支持的所有属性的默认值
// 销毁线程属性
int pthread_attr_destroy(pthread_attr_t *attr);// 回收初始化时给此属性分配的资源
// 设置分离线程属性(分离线程终止时由系统回收线程资源,而一般线程需要pthread_join(pthread_t)函数来回收资源)
int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate);
    detachstate可取两个值:
                        1:默认是PTHREAD_CREATE_JOINABLE,不特意设置线程属性时默认是它
                        2:PTHREAD_CREATE_DETACHED(线程分离)
// 获得分离属性
int pthread_attr_getdetachstate(pthread_attr_t *attr, int *detachstate);
例:设置分离属性的线程
    int makedetachpthread(void *(*fn)(void *), void *arg)
    {
        int             err;
        pthread_t         tid;
        pthread_attr_t  attr;
        err = pthread_attr_init(&attr);
        if(err != 0){
            return err;
        }
        err = pthread_attr_setdetachstate(&attr, PTHREAD_CREATE_DETACHED);
        if(err == 0)
            pthread_create(&tid, &attr, fn, arg);
        pthread_attr_destroy(&attr);// 这里对destroy的返回值没有检查,默认是能够正确回收attr的资源
        return err;
    }

 

以上是关于线程属性API的主要内容,如果未能解决你的问题,请参考以下文章

线程属性总结 线程的api属性

线程属性API

newCacheThreadPool()newFixedThreadPool()newScheduledThreadPool()newSingleThreadExecutor()自定义线程池(代码片段

Linux多线程实践线程的基本属性设置API

onActivityResult 未在 Android API 23 的片段上调用

在Tomcat的安装目录下conf目录下的server.xml文件中增加一个xml代码片段,该代码片段中每个属性的含义与用途