c++ std::thread 类成员函数
时间: 2024-12-18 07:12:15 浏览: 7
C++11 并发指南之std::thread 详解
在C++标准库中,`std::thread`是一个用于创建和管理线程的对象。它属于 `<thread>` 头文件中的内容。`std::thread` 类包含了几个重要的成员函数:
1. **构造函数** (`std::thread(std::function<void()>)` 或 `std::thread(std::thread_function run)`):用于创建一个新的线程并传入一个可调用对象(如函数指针或lambda表达式),这个对象将在新线程中执行。
```cpp
void workerFunction() {
// 线程要执行的任务
}
std::thread myThread(workerFunction); // 使用函数指针
```
2. **join()**:线程执行结束后,该函数会阻塞主线程直到子线程结束。如果子线程已终止(异常退出或其他原因),join()将抛出异常。
```cpp
myThread.join(); // 阻塞主线程直到workerFunction完成
```
3. **detach()**:释放当前线程的所有资源,使其独立运行。一旦调用了detach(),就不能再调用join(),除非你知道如何处理线程终止事件。
```cpp
myThread.detach(); // 子线程不再依赖于主线程
```
4. **interrupt()** 和 **try_join_for()**:这两个函数允许你中断正在运行的线程。interrupt()标记线程应被中断,而try_join_for()尝试等待线程完成,并提供超时选项。
5. **id()**:返回表示线程标识的 `std::thread::id` 对象,用于识别特定线程。
6. **name()** 和 **set_name()**:设置和获取线程的名字,有助于调试和跟踪。
阅读全文