Duangw

条件变量属性对象

索引:

  1. 初始化条件变量属性对象pthread_condattr_init
  2. 释放条件变量属性对象pthread_condattr_destroy
  3. 设置条件变量的作用域pthread_condattr_setpshared
  4. 获取条件变量的作用域pthread_condattr_getpshared

1.初始化条件变量属性对象pthread_condattr_init

#include <pthread.h>
int pthread_condattr_init(pthread_condattr_t *cattr);
返回值:函数成功返回0;任何其他返回值都表示错误

初始化属性对象为缺省值。函数运行时分配属性对象占用的内存空间。

cattr的pshared属性的取值范围是PTHREAD_PROCESS_PRIVATE(缺省值,表示用这个属性对象创建的条件变量只能在本进程中使用)和PTHREAD_PROCESS_SHARED。

 

2.释放条件变量属性对象pthread_condattr_destroy

#include <pthread.h>
int pthread_condattr_destroy(pthread_condattr_t *cattr);
返回值:函数成功返回0;任何其他返回值都表示错误

释放属性对象占用的内存并使相应的属性对象无效。

 

3.设置条件变量的作用域pthread_condattr_setpshared

#include <pthread.h>
int pthread_condattr_setpshared(pthread_condattr_t *cattr,
int pshared);
返回值:函数成功返回0;任何其他返回值都表示错误

设置条件变量的作用域,条件变量的域可以是进程内的也可以是进程间的。

pshared属性值是PTHREAD_PROCESS_SHARED,而且这个条件变量在进程间的共享内存中,那么这个条件变量可以被多个进程中的不同线程所共享。

pshared属性的值是PTHREAD_PROCESS_PRIVATE,那么这个条件变量只能被同一个进程的不同线程使用,即为进程局部的条件变量。

 

4.获取条件变量的作用域pthread_condattr_getpshared

#include <pthread.h>
int pthread_condattr_getpshared(const pthread_condattr_t *cattr,
int *pshared);
返回值:函数成功返回0;任何其他返回值都表示错误

取属性对象cattr中pshared属性的值。pshared属性可能的取值为:PTHREAD_PROCESS_SHARED、PTHREAD_PROCESS_PRIVATE。