std::thread创建线程demo
时间: 2023-06-22 20:45:41 浏览: 49
下面是一个使用 `std::thread` 创建线程的简单示例:
```c++
#include <iostream>
#include <thread>
void printMessage(const std::string& message) {
std::cout << "Message: " << message << std::endl;
}
int main() {
std::string message = "Hello, world!";
std::thread t(printMessage, message);
t.join(); // 等待线程执行完毕
return 0;
}
```
上述代码中,定义了一个名为 `printMessage` 的函数,该函数接受一个 `std::string` 类型的参数,并在控制台输出该字符串。在 `main` 函数中,定义了一个 `std::string` 类型的变量 `message`,并将其赋值为 `"Hello, world!"`。然后,使用 `std::thread` 类创建了一个名为 `t` 的线程,该线程执行 `printMessage` 函数,并传递 `message` 变量作为参数。最后,调用 `t.join()` 等待线程执行完毕。
运行上述代码,应该会在控制台输出 `"Message: Hello, world!"`。
需要注意的是,创建线程时需要传递一个可调用对象(函数、函数指针、lambda 表达式等)作为参数,并且在创建线程后,需要调用 `join()` 或 `detach()` 方法等待线程执行完毕或将线程分离。此外,如果线程执行过程中抛出了异常,则需要使用 try-catch 语句捕获异常。