2026-03-26 16:45:24 +08:00
|
|
|
# ReadWriteLock::WriteLock
|
|
|
|
|
|
2026-03-26 20:59:59 +08:00
|
|
|
以独占方式进入读写锁。
|
2026-03-26 16:45:24 +08:00
|
|
|
|
|
|
|
|
```cpp
|
|
|
|
|
void WriteLock();
|
|
|
|
|
```
|
|
|
|
|
|
2026-03-26 20:59:59 +08:00
|
|
|
## 行为说明
|
2026-03-26 16:45:24 +08:00
|
|
|
|
2026-03-26 20:59:59 +08:00
|
|
|
当前实现会:
|
2026-03-26 16:45:24 +08:00
|
|
|
|
2026-03-26 20:59:59 +08:00
|
|
|
1. 拿内部互斥量。
|
|
|
|
|
2. 先执行 `++m_writersWaiting`。
|
|
|
|
|
3. 等待 `m_readers == 0 && !m_writerActive`。
|
|
|
|
|
4. 条件满足后执行 `--m_writersWaiting` 并把 `m_writerActive = true`。
|
2026-03-26 16:45:24 +08:00
|
|
|
|
2026-03-26 20:59:59 +08:00
|
|
|
## 返回值
|
2026-03-26 16:45:24 +08:00
|
|
|
|
2026-03-26 20:59:59 +08:00
|
|
|
- 无。
|
2026-03-26 16:45:24 +08:00
|
|
|
|
|
|
|
|
## 相关文档
|
|
|
|
|
|
2026-03-26 20:59:59 +08:00
|
|
|
- [返回类型总览](ReadWriteLock.md)
|
|
|
|
|
- [WriteUnlock](WriteUnlock.md)
|
|
|
|
|
- [ReadLock](ReadLock.md)
|