std::thread初始化
时间: 2023-11-09 22:59:34 浏览: 116
std::thread 是 C++11 中的多线程库,用于创建和管理线程。它的初始化有多种方式,以下是几种常见的初始化方式:
1. 使用函数指针作为线程函数:
```cpp
void myFunction() {
// 线程的操作
}
std::thread myThread(myFunction);
```
2. 使用 lambda 表达式作为线程函数:
```cpp
std::thread myThread([](){
// 线程的操作
});
```
3. 使用可调用对象(函数对象)作为线程函数:
```cpp
class MyFunctor {
public:
void operator()() {
// 线程的操作
}
};
MyFunctor myFunctor;
std::thread myThread(myFunctor);
```
4. 使用成员函数作为线程函数:
```cpp
class MyClass {
public:
void myMethod() {
// 线程的操作
}
};
MyClass myObject;
std::thread myThread(&MyClass::myMethod, &myObject);
```
5. 传递参数给线程函数:
```cpp
void myFunction(int arg1, double arg2) {
// 线程的操作
}
std::thread myThread(myFunction, 42, 3.14);
```
请注意,在创建 std::thread 对象后,需要调用其 join() 或 detach() 方法来等待或分离线程。
阅读全文