Duangw

读写锁属性对象

索引:

  1. 初始化读写锁属性对象pthread_rwlockattr_init
  2. 释放读写锁属性对象pthread_rwlockattr_destroy
  3. 设置读写锁共享属性pthread_rwlockattr_setpshared
  4. 取读写锁共享属性pthread_rwlockattr_getpshared

1.初始化读写锁属性对象pthread_rwlockattr_init

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

初始化一个读写锁属性对象,所有属性对象中的属性值都是缺省值。

如果对一个已经初始化过了的属性对象调用pthread_rwlockattr_init()函数,将会造成不可预见的结果。用读写锁属性对象创建了读写锁后,对读写锁属性对象进行修改不会改变相应读写锁的属性。

 

2.释放读写锁属性对象pthread_rwlockattr_destroy

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

释放一个读写锁属性对象。释放了的读写锁属性对象不能被使用,否则会造成不能预测的结果。一般POSIX线程库中的pthread_rwlockattr_destroy函数会将属性对象置为非法值。

 

3.设置读写锁共享属性pthread_rwlockattr_setpshared

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

设置读写锁属性对象中的进程共享属性。

属性为PTHREAD_PROCESS_SHARED的读写锁可以被多个进程中的不同线程共享。属性为PTHREAD_PROCESS_PRIVATE的读写锁只能被当前进程中的线程所共享,其他进程中的线程如果试图访问这样的读写锁结果将不可预料。

缺省的进程共享属性值为PTHREAD_PROCESS_PRIVATE。

 

4.取读写锁共享属性pthread_rwlockattr_getpshared

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

取读写锁属性对象中的进程共享属性。