1# 读写锁 2 3## 概述 4 5### 简介 6 7读写锁,即共享独占锁,读时共享,写时独占。读的时候写阻塞,写的时候读阻塞。而且在写优先模式下,读写操作在竞争锁的时候,会优先得到写锁。 8 9`#include <rwlock.h>` 10 11Inherits from OHOS::NoCopyable 12 13## 涉及功能 14 15### 接口说明 16 17### OHOS::RWLOCK 18 19| 返回类型 | 名称 | 20| -------- | -------------------------------------------------------- | 21| | **RWLock**() : RWLock(true)<br>构造函数 | 22| | **RWLock**(bool writeFirst)<br/>构造函数(指定读优先模式) | 23| | **~RWLock**()<br/>析构 | 24| void | **LockRead**()<br/>获取读锁 | 25| void | **UnLockRead**()<br/>释放读锁 | 26| void | **LockWrite**()<br/>获取写锁 | 27| void | **UnLockWrite**()<br/>释放写锁 | 28 29### OHOS::UniqueWriteGuard 30 31| 返回类型 | 名称 | 32| -------- | --------------------------------------------------------- | 33| | **UniqueWriteGuard**(RWLockable &rwLockable)<br/>构造函数 | 34| | **~UniqueWriteGuard**()<br/>析构函数 | 35 36### OHOS::UniqueReadGuard 37 38| 返回类型 | 名称 | 39| -------- | -------------------------------------------------------- | 40| | **UniqueReadGuard**(RWLockable &rwLockable)<br/>构造函数 | 41| | **~UniqueReadGuard**()<br/>析构函数 | 42 43## 使用示例 44 45 461. 测试用例编译运行方法 47 48- 测试用例代码参见base/test/unittest/common/utils_rwlock_test.cpp 49 50- 使用开发者自测试框架,使用方法参见:[开发自测试执行框架-测试用例执行](https://gitee.com/openharmony/testfwk_developer_test#%E6%B5%8B%E8%AF%95%E7%94%A8%E4%BE%8B%E6%89%A7%E8%A1%8C) 51 52- 使用以下具体命令以运行`rwlock.h`对应测试用例 53```bash 54run -t UT -tp utils -ts UtilsRWLockTest 55``` 56 57## 常见问题 58