C++11/std::thread – 线程管理join/detach
本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++11/std::thread – 线程管理join/detach
原文链接:https://www.stubbornhuang.com/776/
发布于:2020年04月01日 11:47:27
修改于:2020年04月01日 11:47:27

1 join方法
代码示例:
#include <iostream>
#include <thread>
void HelloWorld()
{
std::cout << "hello world" << std::endl;
}
int main()
{
std::thread helloWorldThread(HelloWorld);
helloWorldThread.join();
getchar();
return 0;
}
在上述代码中,线程函数HelloWorld将会被子线程helloWorldThread启动,并运行在该线程中,而join函数会阻塞线程,直到线程函数执行完毕,如果线程函数有返回值,那么返回值将会被忽略。
2 detach方法
如果我们不想线程被阻塞怎么办?使用detach方式,但是风险很高,你可以联想C++的野指针。
在下列代码中,线程函数HelloWorld将会被子线程helloWorldThread启动,并运行在该线程中,detach方法会将线程与线程对象分离,让子线程作为后台线程执行,当前的线程也不会被阻塞。但是,线程detach之后无法与当前线程取得任何联系,也就是说detach之后无法使用join等待线程执行完成,因为线程detach之后何时执行完毕取决于其函数体内的运算逻辑。
代码示例:
#include <iostream>
#include <thread>
void HelloWorld()
{
std::cout << "hello world" << std::endl;
}
int main()
{
std::thread helloWorldThread(HelloWorld);
helloWorldThread.detach();
// do other things 马上可以做其他事情,不会被阻塞
getchar();
return 0;
}
当前分类随机文章推荐
- C++11 - 构建一个符合实际应用要求的线程池 阅读586次,点赞0次
- C++ - vector存储动态指针时正确释放内存 阅读4164次,点赞0次
- C++STL容器 - std::vector元素访问方式总结 阅读199次,点赞0次
- C++ - std::string与std::wstring相互转换 阅读886次,点赞0次
- C++ - 将std::vector中的数值拷贝到数组中 阅读652次,点赞1次
- C++ - 使用std::chrono获取当前秒级/毫秒级/微秒级/纳秒级时间戳 阅读228次,点赞0次
- C++ - 使用ffmpeg读取视频旋转角度并使用OpenCV根据旋转角度对视频进行旋转复原 阅读671次,点赞0次
- C++ Map中存储动态指针时正确释放内存 阅读2724次,点赞0次
- C++11 - 快速学会正则表达式 阅读604次,点赞2次
- C++ - queue存储动态指针时正确释放内存 阅读3887次,点赞2次
全站随机文章推荐
- WordPress - 修复WordPress升级5.1之后版本评论回复按钮失效不跳转以及不弹出评论框的问题 阅读299次,点赞0次
- 工具网站推荐 - 免费的在线视频剪切网站 阅读1505次,点赞0次
- Chrome中播放时视频编码为.h264和音频编码为acc,采样率为48000,双通道的视频文件时音画不同步 阅读3132次,点赞1次
- Python - 运算符/ or // or %的含义和区别 阅读1318次,点赞0次
- 资源分享 - AI Game Programming Wisdom 英文高清PDF下载 阅读438次,点赞1次
- Windows - 使用类的成员函数作为Win32窗口消息回调处理函数WindowProc 阅读189次,点赞0次
- 三维旋转 - 欧拉角和旋转矩阵的基本概念以及相互转换 阅读306次,点赞0次
- 资源分享 - Computer Graphics and Geometric Modelling - Implementation and Algorithms 英文高清PDF下载 阅读340次,点赞0次
- Python - list与字符串str相互转换方法总结 阅读15次,点赞0次
- 资源分享 - OpenGL编程指南(原书第7版)- OpenGL红宝书高清扫描版PDF下载 阅读3411次,点赞1次
评论
147