UNIX(编程-线程控制):15---条件变量属性(pthread_condattr_t)

一、条件变量属性结构体(pthread_condattr_t)

  • pthread_condattr_t

二、条件变量属性

  • ①进程共享:与互斥量的进程共享属性是相同的(互斥量见文章:https://blog.csdn.net/qq_41453285/article/details/90904833)
  • ②时钟属性

三、条件变量属性结构体的初始化

#include 
int pthread_condattr_init(pthread_condattr_t* attr);
int pthread_condattr_destroy(pthread_condattr_t* attr);

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

pthread_condattr_init函数:

  • 功能:对条件变量属性结构体初始化
  • 调用此函数之后,条件变量属性结构体的属性都是系统默认值,如果想要设置其他属性,还需要调用不同的函数进行设置

pthread_condattr_destroy函数:

  • 功能:对条件变量属性结构体反初始化(销毁)
  • 只反初始化,不释放内存

四、进程共享属性的设置与获取(pshared)

#include 
int pthread_condattr_setshared(pthread_condattr_t* attr,int pshared);
int pthread_condattr_getshared(const pthread_condattr_t* restrict attr,int* restrict pshared);

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

pthread_condattr_setshared函数:

  • 功能:设置条件变量的进程共享属性

pthread_condattr_getshared函数:

  • 功能:获取条件变量的进程共享属性

五、时钟属性的设置与获取(clock)

#include 
int pthread_condattr_setclock(pthread_condattr_t* attr,clockid_t clock_id);
int pthread_condattr_getclock(const pthread_condattr_t* restrict attr,clockid_t *restrict clock_id);

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

时钟属性的概念:

  • 时钟属性控制计算pthread_cond_timewait函数的超时参数(tsptr)时采用的是哪个时钟
  • 合法值取自下图列出的时钟ID

UNIX(编程-线程控制):15---条件变量属性(pthread_condattr_t)_第1张图片

  • 注意事项:Single UNIX Specification并没有为其他有超时等待函数的属性对象定义时钟属性

pthread_condattr_setclock函数:

  • 功能:此函数用于设置pthread_cond_timewait函数使用的时钟ID

pthread_condattr_getclock函数:

  • 功能:此函数获取可被用于pthread_cond_timedwait函数的时钟ID。pthread_cond_timedwait函数使用前需要用pthread_condattr_t对条件变量进行初始化

你可能感兴趣的:(UNIX(编程-线程处理))