使用thread类创建多线程
时间: 2023-12-16 15:05:01 浏览: 26
使用`std::thread`类可以创建多线程,具体步骤如下:
1. 创建一个可调用的函数或者lambda表达式作为线程函数。
2. 创建`std::thread`对象,并将线程函数作为参数传递给它。
3. 调用`std::thread`对象的`join()`方法等待线程执行完毕,或者调用`detach()`方法让线程在后台执行。
下面是一个简单的示例代码:
```c++
#include <iostream>
#include <thread>
void thread_func() {
std::cout << "Hello from thread " << std::this_thread::get_id() << std::endl;
}
int main() {
std::thread t(thread_func);
std::cout << "Hello from main thread " << std::this_thread::get_id() << std::endl;
t.join();
return 0;
}
```
在这个示例中,我们创建了一个名为`thread_func()`的函数作为线程函数,然后在`main()`函数中创建了一个`std::thread`对象`t`,将`thread_func()`作为参数传递给它。然后我们在`main()`函数中打印一条消息,最后调用`t.join()`等待线程执行完毕。请注意,这里使用`std::this_thread::get_id()`函数获取当前线程的ID。