Files
XCEngine/docs/api/threading/thread/detach.md

47 lines
1.1 KiB
Markdown
Raw Normal View History

# Thread::Detach
```cpp
void Detach();
```
分离线程,使其在后台独立运行。调用 `Detach()` 后,线程不再受 `Thread` 对象管理,其生命周期由 C++ 运行时库自行管理,直到线程函数执行完毕。
分离后的线程成为"守护线程",其资源在线程结束时自动由运行时回收。与 `Join()` 不同,`Detach()` 只能调用一次。
**警告:** 分离线程时必须确保其访问的所有数据在线程运行期间保持有效。分离后无法通过 `Thread` 对象同步或等待线程。
**参数:** 无
**返回:** 无
**线程安全:** ❌
**示例:**
```cpp
#include "XCEngine/Threading/Thread.h"
#include <iostream>
using namespace XCEngine::Threading;
int main() {
Thread t;
t.Start([]() {
for (int i = 0; i < 3; ++i) {
std::cout << "Detached thread running: " << i << std::endl;
Thread::Sleep(50);
}
}, "DetachedThread");
std::cout << "Thread detached, main continues..." << std::endl;
t.Detach();
Thread::Sleep(200);
return 0;
}
```
## 相关文档
- [Thread 总览](thread.md) - 返回类总览