【多线程】join()和detach()的用法
join()
函数的作用是让主线程等待该子线程完成,然后主线程再继续执行。这种情况下,子线程可以安全的访问主线程中的资源。子线程结束后由主线程负责回收子线程资源。
一个子线程只能调用join()
和detach()
中的一个,且只允许调用一次。可以调用joinable()
来判断是否可以成功调用join()
或detach()
。
对于不会停止的线程,不要使用join()
,因为该线程调用join()
后就阻塞了其他所有线程(包括主线程),只有等到你这个线程结束后,其他线程才会继续运行,以及执行join()
调用位置后面的代码。
你如果在这个线程中使用了无限循环执行的操作,例如while(1){...}
的操作,那么这个线程永远不会停止,你对该线程调用join()
后,其他线程和主线程就失去了意义,这明显不是一个正常的程序。
如果你需要在这个线程中使用无限循环执行的操作,那么就对该线程调用detach()
进行线程分离,就不会影响其他线程或者主线程的运行了。
关于例子代码讲解,可以参考这里。
【多线程】join()和detach()的用法相关推荐
- C++:多线程中的小白(2)线程启动、结束、创建线程、join、detach
目录 一.范例演示:线程运行的开始和结束 二.其他创建线程的手法 一.范例演示:线程运行的开始和结束 (1)thrad (2)join()函数 (3)detach()函数 (4)joinable()函 ...
- left join 和join区别_sleep、yield、join方法简介与用法 sleep与wait区别 多线程中篇
Object中的wait.notify.notifyAll,可以用于线程间的通信,核心原理为借助于监视器的入口集与等待集逻辑 通过这三个方法完成线程在指定锁(监视器)上的等待与唤醒,这三个方法是以锁( ...
- 第二节 线程启动、结束、创建线程多个方法、join()、detach()
1.范例演示线程运行的开始和结束 可执行程序运行起来,生成一个进程,该进程所属的主线程开始自动运行. #include <iostream> #include <vector> ...
- c++11中thread join和detach的区别
线程状态: 在一个线程的生存期内,可以在多种状态之间转换,不同的操作系统可以实现不同的线程模型,定义许多不同的线程状态,每个状态还可以包含多个子状态,但大体来说,如下几种状态是通用的: 1)就绪:参与 ...
- python3 线程 join_python 多线程 join start
python 多线程 join start 线程的几个状态初始(NEW):新创建了一个线程对象,但还没有调用START()方法. 运行(RUNNABLE):线程中将就绪(READY)和运行(RUNNI ...
- python3中join和格式化的用法 ##16
python中join和格式化的用法 ##16 join用法 1.将字符串转化成列表 str1 = "hello" print(list(str1)) ['h', 'e', 'l' ...
- SQL多表查询:SQL JOIN连接查询各种用法总结
在实际应用中,大多的查询都是需要多表连接查询的,但很多初学SQL的小伙伴总对各种JOIN有些迷糊.回想一下,初期很长一段时间,我常用的似乎也就是等值连接 WHERE 后面加等号,对各种JOIN也是不求 ...
- 多线程 join 方法
多线程 join 方法 1.前言 本节对 join 方法进行深入的剖析,主要内容点如下: 了解 join 方法的作用,初步的理解 join 方法的使用带来的效果是学习本节内容的基础: 了解 join ...
- 26.多线程join detach
1 #include <iostream> 2 #include <thread> 3 #include <array> 4 #include <Window ...
最新文章
- 在visualstudio中使用Qt
- svn 分支主干相互合并
- 工业机器人几个自由度_取件冲压上下料机械手和六自由度工业机器人805A
- pyqt5 子线程更新ui
- Android SQLite数据库的详细使用
- css class选择器用法,CSS类选择器用法简明介绍
- 操作系统(十五)调度算法的评价指标
- 期末考试前的预习,科目:化工设备与反应器(6)
- define,require的基本用法
- Android之Json转换利器Gson之实例一-简单对象转化和带泛型的List转化
- 2018年云栖社区值得订阅的11个精选技术期刊!
- 网页设计DIV+CSS——第7天:CSS入门
- Recursive sequence HDU - 5950 (递推 矩阵快速幂优化)
- [转]诺顿最新升级ID
- 计算机win764位相机驱动,万能驱动助理win7 64位
- 服务器DDoS攻击有几种类型?
- win8 计算机组策略,win8打开组策略提示“无法找到组策略”的原因及解决措施
- 怎样在表格中选出同一类_怎样在excel中筛选出带同样文字的
- 计算机窗口的大小是什么单位,电脑软件窗口大小调整
- Win11下安装Perl语言并实现运行
热门文章
- The Illustrated Transformer 翻译
- 新闻上的文本分类:机器学习大乱斗 王岳王院长 王岳王院长 5 个月前 目标 从头开始实践中文短文本分类,记录一下实验流程与遇到的坑 运用多种机器学习(深度学习 + 传统机器学习)方法比较短文本分类处
- 移动开发者必须了解的三大职业趋势
- jvm性能调优 - 02JVM中内存区域
- Apache Kafka-Spring Kafka生产消费@KafkaListener源码解析
- 深入理解分布式技术 - 分库分表后的扩容解决方案
- 深入理解分布式技术 - 从区块链技术看分布式理论的应用
- 深入理解分布式技术 - 理论基石 CAP
- Algorithms_基础数据结构(02)_线性表之链表_单向链表
- Redis-20Spring缓存机制整合Redis