std::thread 的 detach
时间: 2023-10-14 10:17:53 浏览: 90
C++11 并发指南之std::thread 详解
detach 是 std::thread 类的一个成员函数,它用于将线程分离(detach)出主线程,使得主线程和子线程各自独立运行,互不干扰。
std::thread 的 detach 函数的语法如下:
```c++
void detach();
```
在调用 detach 函数之前,必须先调用 std::thread 的 joinable 函数,检查当前线程是否可加入。如果线程已经分离或者已经加入,则调用 detach 函数会抛出 std::system_error 异常。
detach 函数的作用是将线程独立出来,使得主线程和子线程各自运行,不再相互等待和干扰。当主线程结束时,子线程仍然可以继续运行,直到它们自己结束为止。
需要注意的是,一旦线程被分离,就无法再将其加入到主线程中,也不能再通过 join 函数等待线程结束。因此,在使用 detach 函数时,需要确保子线程能够独立完成任务,不会造成资源泄漏或程序崩溃的情况。
阅读全文