c++11多线程类成员函数实例
时间: 2023-07-26 21:14:01 浏览: 70
在C++11中,可以使用`std::thread`类创建线程并调用类成员函数。下面是一个简单的示例:
```c++
#include <iostream>
#include <thread>
class MyClass {
public:
void myMethod(int arg) {
std::cout << "MyClass::myMethod called with arg " << arg << std::endl;
}
};
int main() {
MyClass obj;
std::thread t(&MyClass::myMethod, &obj, 42);
t.join();
return 0;
}
```
在这个例子中,`MyClass`包含一个名为`myMethod`的成员函数,它接受一个整数参数。在`main`函数中,我们首先创建一个`MyClass`对象`obj`,然后使用`std::thread`类创建一个新线程`t`,指定要调用的成员函数`&MyClass::myMethod`和传递给成员函数的参数`&obj, 42`。
注意,我们需要使用指向`obj`的指针作为第一个参数。这是因为在调用成员函数时,需要将对象的地址传递给线程,以便线程可以访问成员变量和其他成员函数。
最后,我们调用`t.join()`等待线程完成并加入到主线程中。
阅读全文