c++类里面使用多线程
时间: 2024-09-14 16:15:10 浏览: 43
c++、lua多线程服务器框架
在C++中使用多线程通常涉及到`<thread>`头文件中的`std::thread`类。C++11标准引入了多线程支持,允许开发者创建和管理线程。在类中使用多线程通常涉及到定义一个线程成员变量,并在合适的时机启动这个线程。
下面是一个简单的例子,展示如何在C++类中使用多线程:
```cpp
#include <iostream>
#include <thread>
#include <string>
class Worker {
public:
Worker(const std::string& name) : name_(name) {}
void DoWork() {
// 这里是工作内容
std::cout << "线程 " << name_ << " 正在工作..." << std::endl;
}
void StartThread() {
// 启动线程,执行DoWork方法
thread_ = std::thread(&Worker::DoWork, this);
}
void JoinThread() {
// 等待线程完成
if (thread_.joinable()) {
thread_.join();
}
}
private:
std::string name_;
std::thread thread_;
};
int main() {
Worker w("worker-1");
w.StartThread(); // 启动线程
w.JoinThread(); // 等待线程结束
return 0;
}
```
在这个例子中,`Worker`类有一个成员函数`DoWork`,这个函数包含了线程要执行的任务。`StartThread`函数启动了一个新线程来执行`DoWork`。`JoinThread`函数用于等待线程执行完毕。
阅读全文