- Fix link resolution with proper relative/absolute path handling - Improve link styling with underline decoration - Hide leaf nodes from tree, only show directories - Fix log file path for packaged app
1.5 KiB
1.5 KiB
ReadWriteLock
命名空间: XCEngine::Threading
类型: class
头文件: XCEngine/Threading/ReadWriteLock.h
描述: 读写锁实现,支持多个并发读取或单一写入,提高读多写少场景的并发性能。
概述
ReadWriteLock 实现了一个经典的读写锁。它允许多个线程同时持有读锁,但在有写锁时,所有读锁都必须释放,写锁为独占访问。这对于读操作远多于写操作的共享数据非常有效。
公共方法
读锁
| 方法 | 描述 |
|---|---|
ReadLock |
获取读锁(可重入,支持多个并发读者) |
ReadUnlock |
释放读锁 |
写锁
| 方法 | 描述 |
|---|---|
WriteLock |
获取写锁(独占,阻塞所有读者和写者) |
WriteUnlock |
释放写锁 |
使用示例
Threading::ReadWriteLock rwLock;
Containers::HashMap<String, int> 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 - 互斥锁
- SpinLock - 自旋锁
- ../threading/threading.md - 模块总览