TaskSystem
命名空间: XCEngine::Threading
类型: class (singleton)
描述: 并行任务调度系统单例,提供工作窃取式任务队列和并行 for 循环。
概述
TaskSystem 是 XCEngine 的核心并行任务调度系统。它创建多个工作线程,使用优先级队列和工作窃取算法调度任务。它还提供 ParallelFor 方法用于数据级并行,以及主线程任务队列。
单例访问
| 方法 |
描述 |
static TaskSystem& Get() |
获取单例实例 |
公共方法
生命周期
| 方法 |
描述 |
void Initialize(const TaskSystemConfig& config) |
初始化任务系统 |
void Shutdown() |
关闭任务系统 |
任务提交
| 方法 |
描述 |
uint64_t Submit(std::unique_ptr<ITask> task) |
提交任务对象 |
uint64_t Submit(std::function<void()>&& func, TaskPriority priority = TaskPriority::Normal) |
提交 lambda 任务 |
任务组
| 方法 |
描述 |
TaskGroup* CreateTaskGroup() |
创建任务组 |
void DestroyTaskGroup(TaskGroup* group) |
销毁任务组 |
等待
| 方法 |
描述 |
void Wait(uint64_t taskId) |
等待指定任务完成 |
信息
| 方法 |
描述 |
uint32_t GetWorkerThreadCount() const |
获取工作线程数量 |
并行 for
| 方法 |
描述 |
template<typename Func> void ParallelFor(int32_t start, int32_t end, Func&& func) |
并行执行 for 循环 |
主线程
| 方法 |
描述 |
void RunOnMainThread(std::function<void()>&& func) |
将任务提交到主线程执行 |
void Update() |
在主线程中处理主线程队列 |
使用示例
相关文档