一、屏障属性结构体(pthread_barrierattr_t)

  • pthread_barrierattr_t

二、屏障属性

  • 进程共享:屏障只支持此属性,与互斥量的进程共享属性是相同的(互斥量见文章:)

三、屏障属性结构体的初始化

#include <pthread.h>
int pthread_barrierattr_init(pthread_barrierattr_t* attr);
int pthread_barrierattr_destroy(pthread_barrierattr_t* attr);

//返回值:成功返回0;失败返回错误编码


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);

//返回值:成功返回0;失败返回错误编码


pthread_barrierattr_setshared函数:

  • 功能:​设置屏障的进程共享属性
  • 进程共享属性的值可以是PTHREAD_PROCESS_SHARED(多进程中的多个线程可用),也可以是PTHREAD_PROCESS_PRIVATE(只有初始化屏障的那个进程内的多个线程可用)

pthread_barrierattr_getshared函数:

  • 功能:​获取屏障的进程共享属性