Files
XCEngine/docs/api/XCEngine/Threading/ReadWriteLock/ReadWriteLock.md

1.3 KiB

ReadWriteLock

命名空间: XCEngine::Threading

类型: class

头文件: XCEngine/Threading/ReadWriteLock.h

描述: 基于互斥量和条件变量实现的写者优先读写锁。

概述

ReadWriteLock 允许多个读者并发进入,但写者需要独占访问。

当前实现的一个关键策略是:只要有写者在等待,新读者就不能继续进入。这意味着它更偏向“写者优先”,可以降低写者长期饥饿的风险,但也可能让高频写入场景里的读者等待更久。

当前实现边界

  • 没有 TryReadLock() / TryWriteLock()
  • 没有升级、降级或 RAII guard 类型。
  • 当前策略会在 m_writersWaiting > 0 时阻止新读者进入,因此可能出现读者饥饿。
  • 没有单测覆盖这把锁的并发行为。

公开方法

方法 说明
Constructor 默认构造读写锁。
Destructor 销毁读写锁。
ReadLock 以共享方式进入。
ReadUnlock 释放共享读锁。
WriteLock 以独占方式进入。
WriteUnlock 释放独占写锁。

相关文档