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