std::thread 线程关闭
时间: 2024-11-22 13:28:51 浏览: 6
C++11 并发指南之std::thread 详解
`std::thread` 是 C++ 标准库中用于创建线程的对象。如果你想关闭(也称为终止)一个 `std::thread` 对象,你可以通过调用 `join()` 或者 `detach()` 函数来实现。
1. **join()**:当你希望主线程等待子线程完成后再继续执行时,可以调用 `join()`。这会阻塞主线程,直到子线程执行完毕或者手动中断。
```cpp
std::thread worker_thread(my_function);
// 等待worker_thread完成
worker_thread.join();
```
2. **detach()**:如果你希望子线程独立运行并在完成任务后自行结束,可以使用 `detach()`。这时主线程不会等待子线程,也不会因为子线程的结束而受到任何影响。
```cpp
std::thread worker_thread(my_function);
// 已经脱离了主线程,worker_thread将独立运行
worker_thread.detach();
```
注意,一旦调用了 `detach()`,你无法再控制或获取到该线程的信息,因此在此之前应确保线程的任务处理完整并且资源管理得当。
阅读全文