条件变量属性对象
索引:
- 初始化条件变量属性对象pthread_condattr_init
- 释放条件变量属性对象pthread_condattr_destroy
- 设置条件变量的作用域pthread_condattr_setpshared
- 获取条件变量的作用域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。