這裏僅僅結束線程屬性的初始化,線程屬性都有哪些成員及其初值,重點介紹detachstate成員線程
使用pthread_attr_init來初始化線程屬性進程
#include <pthread.h>資源
int pthread_attr_destroy(pthread_attr_t *attr);
int pthread_attr_init(pthread_attr_t *attr);
線程屬性初始值:get
scope PTHREAD_SCOPE_PROCESS 新線程與其餘進程中的線程發生競爭it
detachstate PTHREAD_CREATE_JOINABLE 線程能夠被其餘線程等待thread
stackaddr NULL 新線程具備系統分配的棧地址scope
stacksize 0 新線程具備系統定義的棧大小co
….join
#include <pthread.h>系統
int pthread_attr_getdetachstate(const pthread_attr_t *attr,int *detachstate);
起合法值包括
1 PTHREAD_CREATE_DETACHED: 此選項是的使用attr建立的全部關聯線程處於分離狀態。線程終止時候,系統將自動回收與線程有關的資源,不能被其餘線程等待
2 PTHREAD_CREATE_JOINABLE:此選項是的建立的線程處於可鏈接的狀態,線程終止時系統不會回收線程資源,要用pthread_join()回收