docs: update memory and threading API docs
This commit is contained in:
@@ -15,7 +15,7 @@ void Lock()
|
||||
**注意:**
|
||||
- 适用于临界区极短(几个 CPU 指令)的场景,避免线程切换开销。
|
||||
- 在锁持有时间较长或多核竞争激烈时,会浪费大量 CPU 周期,此时应使用 Mutex。
|
||||
- 同一线程不可重复 Lock 同一个 SpinLock。
|
||||
- 同一线程对同一个 SpinLock 重复加锁会导致死锁。
|
||||
|
||||
**示例:**
|
||||
|
||||
|
||||
31
docs/api/threading/spinlock/lock_1.md
Normal file
31
docs/api/threading/spinlock/lock_1.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# SpinLock::lock
|
||||
|
||||
```cpp
|
||||
void lock()
|
||||
```
|
||||
|
||||
STL 兼容的 `lock()` 方法,与 [`Lock`](lock.md) 等效。满足 STL `Lockable` 概念要求。
|
||||
|
||||
**参数:** 无
|
||||
|
||||
**返回:** 无
|
||||
|
||||
**复杂度:** 平均 O(1),最坏情况取决于竞争程度
|
||||
|
||||
**线程安全:** ✅
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
Threading::SpinLock spinLock;
|
||||
|
||||
void STLCompatibleUsage() {
|
||||
spinLock.lock();
|
||||
// 临界区操作
|
||||
spinLock.unlock();
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [SpinLock 总览](spinlock.md) - 返回类总览
|
||||
@@ -19,6 +19,9 @@
|
||||
| [`Lock`](lock.md) | 获取锁(忙等待) |
|
||||
| [`Unlock`](unlock.md) | 释放锁 |
|
||||
| [`TryLock`](trylock.md) | 尝试获取锁(非阻塞) |
|
||||
| [`lock`](lock_1.md) | STL 兼容的 Lock |
|
||||
| [`unlock`](unlock_1.md) | STL 兼容的 Unlock |
|
||||
| [`try_lock`](try_lock.md) | STL 兼容的 TryLock |
|
||||
|
||||
## STL 兼容方法
|
||||
|
||||
@@ -50,4 +53,4 @@ void SafeIncrement() {
|
||||
|
||||
- [Mutex](../mutex/mutex.md) - 互斥锁
|
||||
- [ReadWriteLock](../readwritelock/readwritelock.md) - 读写锁
|
||||
- [../threading/threading.md](../threading.md) - 模块总览
|
||||
- [../threading.md](../threading.md) - 模块总览
|
||||
|
||||
32
docs/api/threading/spinlock/try_lock.md
Normal file
32
docs/api/threading/spinlock/try_lock.md
Normal file
@@ -0,0 +1,32 @@
|
||||
# SpinLock::try_lock
|
||||
|
||||
```cpp
|
||||
bool try_lock()
|
||||
```
|
||||
|
||||
STL 兼容的 `try_lock()` 方法,与 [`TryLock`](trylock.md) 等效。满足 STL `Lockable` 概念要求。
|
||||
|
||||
**参数:** 无
|
||||
|
||||
**返回:** `bool` - 获取成功返回 true,锁不可用返回 false
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
**线程安全:** ✅
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
Threading::SpinLock spinLock;
|
||||
|
||||
void STLCompatibleTry() {
|
||||
if (spinLock.try_lock()) {
|
||||
// 临界区操作
|
||||
spinLock.unlock();
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [SpinLock 总览](spinlock.md) - 返回类总览
|
||||
31
docs/api/threading/spinlock/unlock_1.md
Normal file
31
docs/api/threading/spinlock/unlock_1.md
Normal file
@@ -0,0 +1,31 @@
|
||||
# SpinLock::unlock
|
||||
|
||||
```cpp
|
||||
void unlock()
|
||||
```
|
||||
|
||||
STL 兼容的 `unlock()` 方法,与 [`Unlock`](unlock.md) 等效。满足 STL `Lockable` 概念要求。
|
||||
|
||||
**参数:** 无
|
||||
|
||||
**返回:** 无
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
**线程安全:** ✅
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
Threading::SpinLock spinLock;
|
||||
|
||||
void STLCompatibleUsage() {
|
||||
spinLock.lock();
|
||||
// 临界区操作
|
||||
spinLock.unlock();
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
- [SpinLock 总览](spinlock.md) - 返回类总览
|
||||
Reference in New Issue
Block a user