Files
XCSDD/docs/api/threading/threading.md
ssdfasd 58a83f445a fix: improve doc link navigation and tree display
- Fix link resolution with proper relative/absolute path handling
- Improve link styling with underline decoration
- Hide leaf nodes from tree, only show directories
- Fix log file path for packaged app
2026-03-19 12:44:08 +08:00

2.0 KiB

Threading 模块概览

命名空间: XCEngine::Threading

类型: module

描述: XCEngine 的线程和并发模块,提供多线程编程所需的同步原语和任务系统。

概述

Threading 模块提供了一套完整的多线程编程工具,包括线程封装、同步原语和并行任务系统。

模块内容

同步原语

组件 文件 描述
Mutex Mutex.h 互斥锁
SpinLock SpinLock.h 自旋锁
ReadWriteLock ReadWriteLock.h 读写锁

线程

组件 文件 描述
Thread Thread.h 线程封装类

任务系统

组件 文件 描述
ITask Task.h 任务基类
LambdaTask LambdaTask.h Lambda 任务封装模板
TaskGroup TaskGroup.h 任务组
TaskSystem TaskSystem.h 并行任务调度系统
TaskSystemConfig TaskSystemConfig.h 任务系统配置

同步原语对比

原语 适用场景 特点
Mutex 一般互斥 可重入性差,开销适中
SpinLock 短临界区 无系统调用,开销低
ReadWriteLock 读多写少 读写分离,提高并发

任务系统使用示例

#include "Threading/TaskSystem.h"

// 初始化任务系统
TaskSystemConfig config;
config.workerThreadCount = 4;
TaskSystem::Get().Initialize(config);

// 提交并行任务
TaskSystem::Get().Submit([]() {
    // 执行工作
});

// 使用任务组
TaskGroup* group = TaskSystem::Get().CreateTaskGroup();
group->AddTask([]() { /* 任务1 */ });
group->AddTask([]() { /* 任务2 */ });
group->Wait();

// 销毁任务组
TaskSystem::Get().DestroyTaskGroup(group);

相关文档