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