数据类型: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; }
时间: 2024-10-09 21:19:19