APUE编程:65---线程处理(屏障属性:pthread_barrierattr_t)
原创
©著作权归作者所有:来自51CTO博客作者董哥的黑板报的原创作品,请联系作者获取转载授权,否则将追究法律责任
一、屏障属性结构体(pthread_barrierattr_t)
二、屏障属性
- 进程共享:屏障只支持此属性,与互斥量的进程共享属性是相同的(互斥量见文章:)
三、屏障属性结构体的初始化
#include <pthread.h>
int pthread_barrierattr_init(pthread_barrierattr_t* attr);
int pthread_barrierattr_destroy(pthread_barrierattr_t* attr);
pthread_barrierattr_init函数:
- 功能:对屏障属性结构体初始化
- 调用此函数之后,屏障属性结构体的属性都是系统默认值,如果想要设置其他属性,还需要调用不同的函数进行设置
pthread_barrierattr_destroy函数:
- 功能:对屏障属性反初始化(销毁)
- 只反初始化,不释放内存
四、进程共享属性的设置与获取(pshared)
#include <pthread.h>
int pthread_barrierattr_setshared(pthread_barrierattr_t* attr,int pshared);
int pthread_barrierattr_getshared(const pthread_barrierattr_t* restrict attr,int* restrict pshared);
pthread_barrierattr_setshared函数:
- 功能:设置屏障的进程共享属性
- 进程共享属性的值可以是PTHREAD_PROCESS_SHARED(多进程中的多个线程可用),也可以是PTHREAD_PROCESS_PRIVATE(只有初始化屏障的那个进程内的多个线程可用)
pthread_barrierattr_getshared函数: