1.4 KiB
1.4 KiB
Mutex
命名空间: XCEngine::Threading
类型: class
头文件: XCEngine/Threading/Mutex.h
描述: 对 std::mutex 的薄封装,同时提供引擎风格和 STL Lockable 风格接口。
概述
Mutex 的实现非常直接:内部只有一个 mutable std::mutex m_mutex,所有公开接口都是对它的转发。
这类包装在引擎里常见的原因不是为了改变 std::mutex 的行为,而是为了:
- 统一命名空间与 include 路径。
- 同时支持
Lock()这种引擎风格接口。 - 也支持
lock()/unlock()/try_lock()这种标准库 Lockable 习惯用法。
当前实现边界
- 它不是递归锁;同一线程重复加锁会死锁。
- 没有超时锁接口。
- 没有显式的 owner 检查或调试断言。
- 小写接口之所以能声明成
const,是因为底层std::mutex被保存为mutable。
公开方法
| 方法 | 说明 |
|---|---|
| Constructor | 默认构造互斥锁。 |
| Destructor | 销毁互斥锁。 |
| Lock | 阻塞直到获得锁;同页也说明 lock() 别名。 |
| Unlock | 释放锁;同页也说明 unlock() 别名。 |
| TryLock | 尝试获得锁;同页也说明 try_lock() 别名。 |