# ReadWriteLock **命名空间**: `XCEngine::Threading` **类型**: `class` **头文件**: `XCEngine/Threading/ReadWriteLock.h` **描述**: 读写锁实现,支持多个并发读取或单一写入,提高读多写少场景的并发性能。 ## 概述 `ReadWriteLock` 实现了一个经典的读写锁。它允许多个线程同时持有读锁,但在有写锁时,所有读锁都必须释放,写锁为独占访问。这对于读操作远多于写操作的共享数据非常有效。 ## 公共方法 ### 读锁 | 方法 | 描述 | |------|------| | [`ReadLock`](readlock.md) | 获取读锁(可重入,支持多个并发读者) | | [`ReadUnlock`](readunlock.md) | 释放读锁 | ### 写锁 | 方法 | 描述 | |------|------| | [`WriteLock`](writelock.md) | 获取写锁(独占,阻塞所有读者和写者) | | [`WriteUnlock`](writeunlock.md) | 释放写锁 | ## 使用示例 ```cpp Threading::ReadWriteLock rwLock; Containers::HashMap sharedMap; // 读操作(多个线程可同时读) int* ReadData(const String& key) { rwLock.ReadLock(); int* value = sharedMap.Find(key); rwLock.ReadUnlock(); return value; } // 写操作(独占) void WriteData(const String& key, int value) { rwLock.WriteLock(); sharedMap.Insert(key, value); rwLock.WriteUnlock(); } ``` ## 相关文档 - [Mutex](../mutex/mutex.md) - 互斥锁 - [SpinLock](../spinlock/spinlock.md) - 自旋锁 - [../threading/threading.md](../threading.md) - 模块总览