58 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			2.1 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# 读写锁
 | 
						|
 | 
						|
## 概述
 | 
						|
 | 
						|
### 简介
 | 
						|
 | 
						|
读写锁,即共享独占锁,读时共享,写时独占。读的时候写阻塞,写的时候读阻塞。而且在写优先模式下,读写操作在竞争锁的时候,会优先得到写锁。
 | 
						|
 | 
						|
`#include <rwlock.h>`
 | 
						|
 | 
						|
Inherits from OHOS::NoCopyable
 | 
						|
 | 
						|
## 涉及功能
 | 
						|
 | 
						|
### 接口说明
 | 
						|
 | 
						|
### OHOS::RWLOCK
 | 
						|
 | 
						|
| 返回类型 | 名称                                                     |
 | 
						|
| -------- | -------------------------------------------------------- |
 | 
						|
|          | **RWLock**() : RWLock(true)<br>构造函数                  |
 | 
						|
|          | **RWLock**(bool writeFirst)<br/>构造函数(指定读优先模式) |
 | 
						|
|          | **~RWLock**()<br/>析构                                   |
 | 
						|
| void     | **LockRead**()<br/>获取读锁                             |
 | 
						|
| void     | **UnLockRead**()<br/>释放读锁                           |
 | 
						|
| void     | **LockWrite**()<br/>获取写锁                            |
 | 
						|
| void     | **UnLockWrite**()<br/>释放写锁                          |
 | 
						|
 | 
						|
### OHOS::UniqueWriteGuard
 | 
						|
 | 
						|
| 返回类型 | 名称                                                      |
 | 
						|
| -------- | --------------------------------------------------------- |
 | 
						|
|          | **UniqueWriteGuard**(RWLockable &rwLockable)<br/>构造函数 |
 | 
						|
|          | **~UniqueWriteGuard**()<br/>析构函数                      |
 | 
						|
 | 
						|
### OHOS::UniqueReadGuard
 | 
						|
 | 
						|
| 返回类型 | 名称                                                     |
 | 
						|
| -------- | -------------------------------------------------------- |
 | 
						|
|          | **UniqueReadGuard**(RWLockable &rwLockable)<br/>构造函数 |
 | 
						|
|          | **~UniqueReadGuard**()<br/>析构函数                      |
 | 
						|
 | 
						|
## 使用示例
 | 
						|
 | 
						|
 | 
						|
1. 测试用例编译运行方法
 | 
						|
 | 
						|
- 测试用例代码参见base/test/unittest/common/utils_rwlock_test.cpp
 | 
						|
 | 
						|
- 使用开发者自测试框架,使用方法参见:[开发自测试执行框架-测试用例执行](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)
 | 
						|
 | 
						|
- 使用以下具体命令以运行`rwlock.h`对应测试用例
 | 
						|
```bash
 | 
						|
run -t UT -tp utils -ts UtilsRWLockTest
 | 
						|
```
 | 
						|
 | 
						|
## 常见问题
 |