设置线程属性
typedef union
{
char _size[_SIZEOF_PTHREAD_ATTR_T];
long int_align;
}pthread_attr_t
猜测:不让手动修改线程的各大项属性,而使用pthread_attr
int pthread_attr_init(pthread_attr_t *attr);
功能:初始化线程属性
int pthread_attr_destroy(pthread_attr_t *attr);
功能:销毁线程属性
int pthread_attr_setdetachstate(pthread_attr_t *attr, int detachstate);
功能:设置线程属性中分离标志
PTHREAD_CREATE_DETACHED 分离
PTHREAD_CREATE_JOINABLE 不分离
int pthread_attr_getdetachstate(pthread_attr_t *attr, int *detachstate);
功能:获取线程属性中分离标志
int pthread_attr_setscope(pthread_attr_t *attr, int scope);
功能:设置线程属性中线程的竞争范围
PTHREAD_SCOPE_SYSTEM
PTHREAD_SCOPE_PROCESS
int pthread_attr_getscope(pthread_attr_t *attr, int *scope);
功能:获取线程属性中线程的竞争范围
int pthread_attr_setinheritsched(pthread_attr_t *attr, int inheritsched);
功能:设置线程属性中线程的调度策略的来源
PTHREAD_INHERIT_SCHED 继承创建者
PTHREAD_EXPLICIT_SCHED 单独设置
int pthread_attr_getinheritsched(pthread_attr_t *attr, int *inheritsched);
功能:获取线程属性中线程的调度策略的来源
int pthread_attr_setschedpolicy(pthread_attr_t *attr, int policy);
功能:设置线程属性中线程的调度策略
SCHED_FIFO 先进先出策略
SCHED_RR 轮转策略
SCHED_OTHER 缺省
int pthread_attr_getschedpolicy(pthread_attr_t *attr, int *policy);
功能:获取线程属性中线程的调度策略
int pthread_attr_setschedparam(pthread_attr_t *attr, const struct sched_param *param);
功能:设置线程属性中线程的调度参数(优先级别)
param 最高级别0
int pthread_attr_getschedparam(pthread_attr_t *attr, struct sched_param *param);
int pthread_attr_setguardsize(pthread_attr_t *attr, size_t guardsize);
功能:设置线程属性中栈尾的警戒区大小,默认一页
int pthread_attr_getguardsize(pthread_attr_t *attr, size_t *guardsize);
功能:获取线程属性中栈尾的警戒区大小
int pthread_attr_setstackaddr(pthread_attr_t *attr, void *stackaddr);
功能:设置线程属性中线程的栈底地址
int pthread_attr_getstackaddr(pthread_attr_t *attr, void **stackaddr);
功能:获取线程属性中线程的栈底地址
int pthread_attr_setstacksize(pthread_attr_t *attr, size_t stacksize);
功能:设置线程属性中线程的栈空间字节数
int pthread_attr_getstacksize(pthread_attr_t *attr, size_t *stacksize);
功能:获取线程属性中线程的栈空间字节数
使用方法:
1.定义线程属性结构体
pthread_attr_t attr;
2.初始化线程属性结构体
pthread_attr_init(&attr);
3.使用pthread_attr_set系列函数对结构体变量进行设置
4.在创建pthread_create函数的第二个参数时使用线程属性结构体变量创建线程
int pthread_getattr_np(pthread_t thread, pthread_attr_t *attr);
功能:获取指定线程的属性