thread中join和detach的区别
来源:互联网 发布:朱永棠网络电影 编辑:程序博客网 时间:2024/05/10 15:36
C++中的thread对象通常来说表达了执行的线程(thread of execution),这是一个操作系统或者平台的概念。
当thread::join()函数被调用后,调用它的线程会被block,直到线程的执行被完成。基本上,这是一种可以用来知道一个线程已结束的机制。当thread::join()返回时,操作系统的执行的线程已经完成,C++线程对象可以被销毁。
当thread::detach()函数被调用后,执行的线程从线程对象中被分离,已不再被一个线程对象所表达--这是两个独立的事情。C++线程对象可以被销毁,同时OS执行的线程可以继续。如果程序想要知道执行的线程何时结束,就需要一些其它的机制。join()函数在那个thread对象上不能再被调用,因为它已经不再和一个执行的线程相关联。
去销毁一个仍然可以“joinable”的C++线程对象会被认为是一种错误。为了销毁一个C++线程对象,约么join()函数需要被调用(并结束),要么detach()函数被调用。如果一个C++线程对象当销毁时仍然可以被join,异常会被抛出。
因此,你应该在执行流程到析构函数前总是要么join,要么detach一个线程
阅读全文
0 0
- thread中join和detach的区别
- thread中join和detach的区别
- thread中join和detach的区别
- thread join和detach区别
- thread join和detach区别
- thread的join和detach
- thread join和detach
- thread线程的join和detach
- thread::join和thread::detach
- 之前介绍 thread join和detach的区别但是不详细 (详细介绍)
- 线程的join和detach
- C++并发实战2:thread::join和thread::detach
- 多线程中join和detach方法的理解
- 线程的join 和detach状态
- pthread join 和detach 的处理
- 线程的join 和detach状态
- jquery中remove(),detach()和empty()的区别
- jQuery中删除方法empty(),remove()和detach()的区别
- ssh框架中遇到的问题
- 云课堂入门整理---计算机网络-传输层(一)
- 图论总结(4)有向图的强连通分量
- xlistview的多条目展示
- linux 打开防火墙端口
- thread中join和detach的区别
- 常见的算法
- 两个乒乓球队进行比赛,各出三人。 甲队为a,b,c三人,乙队为x,y,z三人。已抽签决定比赛名单。有人向队员打听比赛的名单。a说他不和x比,c说他不和x,z比,请编程序找出三队赛手的名单。
- Matplotlib
- Intellij IDEA 2017 debug断点调试技巧与总结详解篇
- Ansible安装
- 常见端口入侵方法剖析
- ext页面开发常用正则表达式
- MFC复选框CheckBox使用