docs: update memory and threading API docs
This commit is contained in:
@@ -10,6 +10,8 @@ TaskGroup* CreateTaskGroup()
|
||||
|
||||
**返回:** `TaskGroup*` - 新创建的任务组指针
|
||||
|
||||
**线程安全:** ✅ (内部使用 SpinLock 保护)
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
**注意:**
|
||||
|
||||
@@ -11,6 +11,8 @@ void DestroyTaskGroup(TaskGroup* group)
|
||||
|
||||
**返回:** 无
|
||||
|
||||
**线程安全:** ✅ (内部使用 SpinLock 保护)
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
**注意:**
|
||||
|
||||
@@ -10,6 +10,8 @@ uint32_t GetWorkerThreadCount() const
|
||||
|
||||
**返回:** `uint32_t` - 工作线程数量
|
||||
|
||||
**线程安全:** ✅ (只读操作)
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
**示例:**
|
||||
|
||||
@@ -11,6 +11,8 @@ void Initialize(const TaskSystemConfig& config)
|
||||
|
||||
**返回:** 无
|
||||
|
||||
**线程安全:** ❌ (应在主线程初始化)
|
||||
|
||||
**复杂度:** O(n),n 为 workerThreadCount
|
||||
|
||||
**注意:**
|
||||
|
||||
@@ -17,6 +17,8 @@ void ParallelFor(int32_t start, int32_t end, Func&& func)
|
||||
|
||||
**返回:** 无
|
||||
|
||||
**线程安全:** ✅ (内部通过 Submit 实现线程安全)
|
||||
|
||||
**复杂度:** O(n)
|
||||
|
||||
**分区策略:**
|
||||
|
||||
@@ -11,6 +11,8 @@ void RunOnMainThread(std::function<void()>&& func)
|
||||
|
||||
**返回:** 无
|
||||
|
||||
**线程安全:** ✅ (内部使用 mutex 保护主线程队列)
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
**使用场景:**
|
||||
|
||||
@@ -10,6 +10,8 @@ void Shutdown()
|
||||
|
||||
**返回:** 无
|
||||
|
||||
**线程安全:** ❌ (非线程安全,调用后应等待所有任务完成)
|
||||
|
||||
**复杂度:** O(n)
|
||||
|
||||
**注意:**
|
||||
|
||||
@@ -33,6 +33,8 @@ uint64_t Submit(std::function<void()>&& func, TaskPriority priority = TaskPriori
|
||||
|
||||
**复杂度:** O(log n)
|
||||
|
||||
**线程安全:** ✅ (内部使用 mutex 保护任务队列)
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
@@ -52,10 +54,12 @@ uint64_t id3 = TaskSystem::Get().Submit([]() {
|
||||
HeavyCompute();
|
||||
}, TaskPriority::High);
|
||||
|
||||
// 等待任务完成
|
||||
TaskSystem::Get().Wait(id1);
|
||||
TaskSystem::Get().Wait(id2);
|
||||
TaskSystem::Get().Wait(id3);
|
||||
// 使用 TaskGroup 等待任务完成
|
||||
TaskGroup* group = TaskSystem::Get().CreateTaskGroup();
|
||||
group->AddTask([]() { /* task 1 */ });
|
||||
group->AddTask([]() { /* task 2 */ });
|
||||
group->Wait();
|
||||
TaskSystem::Get().DestroyTaskGroup(group);
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
|
||||
`TaskSystem` 是 XCEngine 的核心并行任务调度系统。它创建多个工作线程,使用优先级队列调度任务。它还提供 `ParallelFor` 方法用于数据级并行,以及主线程任务队列。
|
||||
|
||||
**注意:** 当前实现的 `stealTasks` 配置项未生效,任务系统使用单一全局任务队列而非工作窃取模式。
|
||||
**注意:** 当前实现的 `stealTasks` 配置项未生效,任务系统使用单一全局优先级任务队列。
|
||||
|
||||
## 单例访问
|
||||
|
||||
@@ -24,7 +24,8 @@
|
||||
|
||||
| 方法 | 描述 |
|
||||
|------|------|
|
||||
| [`Get`](get.md) | 获取单例实例 |
|
||||
| [`TaskSystem()`](task-system.md) | 私有构造函数(单例) |
|
||||
| [`~TaskSystem()`](task-system.md) | 析构函数 |
|
||||
| [`Initialize`](initialize.md) | 初始化任务系统 |
|
||||
| [`Shutdown`](shutdown.md) | 关闭任务系统 |
|
||||
| [`Submit(unique_ptr)`](submit.md) | 提交任务对象 |
|
||||
|
||||
@@ -10,6 +10,8 @@ void Update()
|
||||
|
||||
**返回:** 无
|
||||
|
||||
**线程安全:** ❌ (应在主线程调用)
|
||||
|
||||
**复杂度:** O(n),n 为队列中待执行任务数
|
||||
|
||||
**使用场景:**
|
||||
|
||||
@@ -6,17 +6,10 @@ void Wait(uint64_t taskId)
|
||||
|
||||
**注意:** 此方法当前为空实现,不执行任何操作。
|
||||
|
||||
**参数:**
|
||||
- `taskId` - 要等待的任务 ID
|
||||
|
||||
**返回:** 无
|
||||
|
||||
**复杂度:** N/A(空实现)
|
||||
|
||||
**当前状态:** 此方法为空实现,不执行任何操作。任务系统目前不支持按任务 ID 等待。
|
||||
|
||||
**建议:** 使用 `TaskGroup::Wait` 代替此方法。
|
||||
|
||||
**线程安全:** N/A (空实现)
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
|
||||
Reference in New Issue
Block a user