docs: update memory and threading API docs
This commit is contained in:
@@ -2,34 +2,44 @@
|
||||
|
||||
```cpp
|
||||
template<typename Func>
|
||||
void Start(Func&& func, const Containers::String& name = "Thread")
|
||||
void Start(Func&& func, const Containers::String& name = "Thread");
|
||||
```
|
||||
|
||||
启动线程,执行传入的可调用对象。该方法创建一个新的执行线程,立即开始运行。
|
||||
启动一个新线程并执行传入的可调用对象。该方法是模板方法,可以接受任何可调用对象,包括普通函数、Lambda 表达式、仿函数等。
|
||||
|
||||
调用 `Start()` 后,线程立即开始执行。线程 ID 通过 `native_handle()` 获取并转换为 `uint64_t` 类型。
|
||||
|
||||
**注意:** `Start()` 不是线程安全的,不应在同一 `Thread` 对象上并发调用。
|
||||
|
||||
**参数:**
|
||||
- `func` - 要在线程中执行的可调用对象(lambda、函数指针、仿函数等)
|
||||
- `name` - 线程名称,用于调试和日志输出,默认值为 "Thread"
|
||||
- `func` - 要执行的线程函数,可以是任意可调用对象
|
||||
- `name` - 线程名称,默认为 "Thread",用于调试和日志记录
|
||||
|
||||
**返回:** 无
|
||||
|
||||
**复杂度:** O(1)
|
||||
|
||||
**线程安全:** 该方法不是线程安全的,不应在同一 Thread 对象上并发调用。
|
||||
**线程安全:** ❌
|
||||
|
||||
**示例:**
|
||||
|
||||
```cpp
|
||||
#include "Threading/Thread.h"
|
||||
#include "XCEngine/Threading/Thread.h"
|
||||
#include <iostream>
|
||||
|
||||
Thread worker;
|
||||
worker.Start([]() {
|
||||
printf("Worker thread running\n");
|
||||
Thread::Sleep(100);
|
||||
printf("Worker thread done\n");
|
||||
}, "WorkerThread");
|
||||
using namespace XCEngine::Threading;
|
||||
|
||||
worker.Join();
|
||||
void FreeFunction(int value) {
|
||||
std::cout << "Free function called with: " << value << std::endl;
|
||||
}
|
||||
|
||||
int main() {
|
||||
Thread t;
|
||||
t.Start(FreeFunction, "FreeFuncThread");
|
||||
t.Start([]() {
|
||||
std::cout << "Lambda thread executing" << std::endl;
|
||||
}, "LambdaThread");
|
||||
t.Join();
|
||||
return 0;
|
||||
}
|
||||
```
|
||||
|
||||
## 相关文档
|
||||
|
||||
Reference in New Issue
Block a user