# 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](Constructor.md) | 默认构造互斥锁。 | | [Destructor](Destructor.md) | 销毁互斥锁。 | | [Lock](Lock.md) | 阻塞直到获得锁;同页也说明 `lock()` 别名。 | | [Unlock](Unlock.md) | 释放锁;同页也说明 `unlock()` 别名。 | | [TryLock](TryLock.md) | 尝试获得锁;同页也说明 `try_lock()` 别名。 | ## 相关文档 - [当前模块](../Threading.md) - [SpinLock](../SpinLock/SpinLock.md)