docs: rebuild Threading API content
This commit is contained in:
@@ -6,30 +6,33 @@
|
||||
|
||||
**头文件**: `XCEngine/Threading/SpinLock.h`
|
||||
|
||||
**描述**: 定义 `XCEngine/Threading` 子目录中的 `SpinLock` public API。
|
||||
**描述**: 基于 `std::atomic_flag` 的轻量自旋锁。
|
||||
|
||||
## 概述
|
||||
|
||||
`SpinLock.h` 是 `XCEngine/Threading` 子目录 下的 public header,当前页面作为平行目录中的 canonical 总览,用于汇总该头文件暴露的主要声明。
|
||||
`SpinLock` 和 `Mutex` 的主要区别不在 API 形状,而在等待策略:
|
||||
|
||||
## 声明概览
|
||||
- `Mutex` 依赖 OS 互斥量阻塞等待。
|
||||
- `SpinLock` 在失败时会一直忙等,不让出 CPU。
|
||||
|
||||
| 声明 | 类型 | 说明 |
|
||||
|------|------|------|
|
||||
| `SpinLock` | `class` | 头文件中的公开声明。 |
|
||||
这类锁通常只适合非常短的临界区,例如极小的元数据更新。商业引擎会保留它,是因为在高频、超短持锁窗口下,系统 mutex 的调度成本可能反而更高。
|
||||
|
||||
## 公共方法
|
||||
## 当前实现边界
|
||||
|
||||
| 方法 | 描述 |
|
||||
- 失败时是空循环忙等,没有回退、没有 `Yield()`、没有 pause 指令。
|
||||
- 没有公平性保证。
|
||||
- 不是递归锁;同一线程重复进入会自旋死锁。
|
||||
- 与 `Mutex` 一样,同时提供了标准 Lockable 风格小写别名。
|
||||
|
||||
## 公开方法
|
||||
|
||||
| 方法 | 说明 |
|
||||
|------|------|
|
||||
| [Lock](Lock.md) | 公开方法,详见头文件声明。 |
|
||||
| [Unlock](Unlock.md) | 公开方法,详见头文件声明。 |
|
||||
| [TryLock](TryLock.md) | 公开方法,详见头文件声明。 |
|
||||
| [lock](lock.md) | 公开方法,详见头文件声明。 |
|
||||
| [unlock](unlock.md) | 公开方法,详见头文件声明。 |
|
||||
| [try_lock](try_lock.md) | 公开方法,详见头文件声明。 |
|
||||
| [Lock](Lock.md) | 阻塞自旋直到获得锁;同页也说明 `lock()` 别名。 |
|
||||
| [Unlock](Unlock.md) | 释放锁;同页也说明 `unlock()` 别名。 |
|
||||
| [TryLock](TryLock.md) | 尝试获得锁;同页也说明 `try_lock()` 别名。 |
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [当前目录](../Threading.md) - 返回 `Threading` 平行目录
|
||||
- [API 总索引](../../../main.md) - 返回顶层索引
|
||||
- [当前模块](../Threading.md)
|
||||
- [Mutex](../Mutex/Mutex.md)
|
||||
|
||||
Reference in New Issue
Block a user