std::thread 创建对象操作
时间: 2024-09-24 07:22:22 浏览: 31
C++11 并发指南之std::thread 详解
`std::thread`是C++标准库中的一个线程处理类,它允许你在C++程序中创建、管理和同步线程。创建一个新的`std::thread`对象通常需要三个步骤:
1. **定义线程函数**:首先,你需要定义一个函数(或lambda表达式),这个函数将成为新线程的执行体。这个函数被称为线程函数。
```cpp
void thread_function() {
// 线程将执行的代码
}
```
2. **创建线程对象**:然后,使用`std::thread`构造函数,并传入线程函数作为参数。这会启动一个新的线程并运行指定的函数。
```cpp
#include <thread>
std::thread my_thread(thread_function);
```
如果你有一个成员函数,也可以通过指针或引用传递给`std::thread`。
```cpp
class MyClass {
public:
void member_function() { /* ... */ }
};
MyClass obj;
std::thread my_thread(&MyClass::member_function, &obj);
```
3. **启动和等待**:默认情况下,一旦线程被创建,它就会立即开始执行。如果你想延迟线程的启动,可以使用`start()`函数。如果想让主线程等待线程完成后再继续,你可以调用`join()`函数。
```cpp
my_thread.start(); // 启动线程
// ...
my_thread.join(); // 主线程等待线程结束
```
阅读全文