join()函数的作用是让主线程等待该子线程完成,然后主线程再继续执行。这种情况下,子线程可以安全的访问主线程中的资源。子线程结束后由主线程负责回收子线程资源。

一个子线程只能调用join()detach()中的一个,且只允许调用一次。可以调用joinable()来判断是否可以成功调用join()detach()
对于不会停止的线程,不要使用join(),因为该线程调用join()后就阻塞了其他所有线程(包括主线程),只有等到你这个线程结束后,其他线程才会继续运行,以及执行join()调用位置后面的代码。
你如果在这个线程中使用了无限循环执行的操作,例如while(1){...}的操作,那么这个线程永远不会停止,你对该线程调用join()后,其他线程和主线程就失去了意义,这明显不是一个正常的程序。
如果你需要在这个线程中使用无限循环执行的操作,那么就对该线程调用detach()进行线程分离,就不会影响其他线程或者主线程的运行了。

关于例子代码讲解,可以参考这里。

【多线程】join()和detach()的用法相关推荐

  1. C++:多线程中的小白(2)线程启动、结束、创建线程、join、detach

    目录 一.范例演示:线程运行的开始和结束 二.其他创建线程的手法 一.范例演示:线程运行的开始和结束 (1)thrad (2)join()函数 (3)detach()函数 (4)joinable()函 ...

  2. left join 和join区别_sleep、yield、join方法简介与用法 sleep与wait区别 多线程中篇

    Object中的wait.notify.notifyAll,可以用于线程间的通信,核心原理为借助于监视器的入口集与等待集逻辑 通过这三个方法完成线程在指定锁(监视器)上的等待与唤醒,这三个方法是以锁( ...

  3. 第二节 线程启动、结束、创建线程多个方法、join()、detach()

    1.范例演示线程运行的开始和结束 可执行程序运行起来,生成一个进程,该进程所属的主线程开始自动运行. #include <iostream> #include <vector> ...

  4. c++11中thread join和detach的区别

    线程状态: 在一个线程的生存期内,可以在多种状态之间转换,不同的操作系统可以实现不同的线程模型,定义许多不同的线程状态,每个状态还可以包含多个子状态,但大体来说,如下几种状态是通用的: 1)就绪:参与 ...

  5. python3 线程 join_python 多线程 join start

    python 多线程 join start 线程的几个状态初始(NEW):新创建了一个线程对象,但还没有调用START()方法. 运行(RUNNABLE):线程中将就绪(READY)和运行(RUNNI ...

  6. python3中join和格式化的用法 ##16

    python中join和格式化的用法 ##16 join用法 1.将字符串转化成列表 str1 = "hello" print(list(str1)) ['h', 'e', 'l' ...

  7. SQL多表查询:SQL JOIN连接查询各种用法总结

    在实际应用中,大多的查询都是需要多表连接查询的,但很多初学SQL的小伙伴总对各种JOIN有些迷糊.回想一下,初期很长一段时间,我常用的似乎也就是等值连接 WHERE 后面加等号,对各种JOIN也是不求 ...

  8. 多线程 join 方法

    多线程 join 方法 1.前言 本节对 join 方法进行深入的剖析,主要内容点如下: 了解 join 方法的作用,初步的理解 join 方法的使用带来的效果是学习本节内容的基础: 了解 join ...

  9. 26.多线程join detach

    1 #include <iostream> 2 #include <thread> 3 #include <array> 4 #include <Window ...

最新文章

  1. 在visualstudio中使用Qt
  2. svn 分支主干相互合并
  3. 工业机器人几个自由度_取件冲压上下料机械手和六自由度工业机器人805A
  4. pyqt5 子线程更新ui
  5. Android SQLite数据库的详细使用
  6. css class选择器用法,CSS类选择器用法简明介绍
  7. 操作系统(十五)调度算法的评价指标
  8. 期末考试前的预习,科目:化工设备与反应器(6)
  9. define,require的基本用法
  10. Android之Json转换利器Gson之实例一-简单对象转化和带泛型的List转化
  11. 2018年云栖社区值得订阅的11个精选技术期刊!
  12. 网页设计DIV+CSS——第7天:CSS入门
  13. Recursive sequence HDU - 5950 (递推 矩阵快速幂优化)
  14. [转]诺顿最新升级ID
  15. 计算机win764位相机驱动,万能驱动助理win7 64位
  16. 服务器DDoS攻击有几种类型?
  17. win8 计算机组策略,win8打开组策略提示“无法找到组策略”的原因及解决措施
  18. 怎样在表格中选出同一类_怎样在excel中筛选出带同样文字的
  19. 计算机窗口的大小是什么单位,电脑软件窗口大小调整
  20. Win11下安装Perl语言并实现运行

热门文章

  1. The Illustrated Transformer 翻译
  2. 新闻上的文本分类:机器学习大乱斗 王岳王院长 王岳王院长 5 个月前 目标 从头开始实践中文短文本分类,记录一下实验流程与遇到的坑 运用多种机器学习(深度学习 + 传统机器学习)方法比较短文本分类处
  3. 移动开发者必须了解的三大职业趋势
  4. jvm性能调优 - 02JVM中内存区域
  5. Apache Kafka-Spring Kafka生产消费@KafkaListener源码解析
  6. 深入理解分布式技术 - 分库分表后的扩容解决方案
  7. 深入理解分布式技术 - 从区块链技术看分布式理论的应用
  8. 深入理解分布式技术 - 理论基石 CAP
  9. Algorithms_基础数据结构(02)_线性表之链表_单向链表
  10. Redis-20Spring缓存机制整合Redis