std::make_shared<std::thread>
时间: 2023-10-21 21:26:14 浏览: 239
C++11 std::shared_ptr总结与使用示例代码详解
这是一个使用C++的标准库函数`std::make_shared`来创建一个共享指针的示例,该共享指针指向一个新创建的`std::thread`对象。`std::thread`是C++标准库中用于创建和管理线程的类。通过使用`std::make_shared`函数,可以直接创建一个包装了`std::thread`对象的共享指针,这样可以方便地管理线程的生命周期和资源释放。
示例代码如下:
```cpp
#include <iostream>
#include <thread>
#include <memory>
void threadFunc()
{
std::cout << "Hello from thread!" << std::endl;
}
int main()
{
std::shared_ptr<std::thread> threadPtr = std::make_shared<std::thread>(threadFunc);
// 等待线程执行完毕
threadPtr->join();
return 0;
}
```
以上代码中,`std::make_shared<std::thread>(threadFunc)`会创建一个新的`std::thread`对象,其中`threadFunc`是线程要执行的函数。然后,将返回的指针传递给`std::shared_ptr<std::thread>`类型的共享指针`threadPtr`进行管理。最后调用`join()`函数等待线程执行完毕并释放资源。
希望能解答您的问题!如果还有其他问题,请随时提问。
阅读全文