c++ 等待子线程结束_python主线程与子线程的结束顺序
对于程序来说,如果主进程在子进程还未结束时就已经退出,那么Linux内核会将子进程的父进程ID改为1(也就是init进程),当子进程结束后会由init进程来回收该子进程。
主线程退出后子线程的状态依赖于它所在的进程,如果进程没有退出的话子线程依然正常运转。如果进程退出了,那么它所有的线程都会退出,所以子线程也就退出了。
主线程退出,进程等待所有子线程执行完毕后才结束
进程启动后会默认产生一个主线程,默认情况下主线程创建的子线程都不是守护线程(setDaemon(False))。因此主线程结束后,子线程会继续执行,进程会等待所有子线程执行完毕后才结束
所有线程共享一个终端输出(线程所属进程的终端)
输出为:
可见父线程结束后,子线程仍在运行,此时结束进程,子线程才会被终止
主线程结束后进程不等待守护线程完成,立即结束
当设置一个线程为守护线程时,此线程所属进程不会等待此线程运行结束,进程将立即结束
输出:
thread1是守护线程,thread2非守护线程,因此,进程会等待thread2完成后结束,而不会等待thread1完成
注意:子线程会继承父线程中daemon的值,即守护线程开启的子线程仍是守护线程
主线程等待子线程完成后结束
在线程A中使用B.join()表示线程A在调用join()处被阻塞,且要等待线程B的完成才能继续执行
输出:
主线程在执行到thread2.join()时被阻塞,等待thread2结束后才会执行下一句
1/0 会使主线程报错退出,且thread1设置了daemon=True,因此主线程意外退出时thread1也会立即结束。thread1.join()没有被主线程执行
转自:python主线程与子线程的结束顺序_侵删
c++ 等待子线程结束_python主线程与子线程的结束顺序相关推荐
- python捕捉线程错误_python 主线程捕获子线程异常
最近,在做一个项目时遇到的了一个问题,主线程无法捕获子线程中抛出的异常. 先看一个线程类的定义 ''' Created on Oct 27, 2015 @author: wujz ''' import ...
- python主线程_Python主线程和子线程
Python主线程和子线程 一.setDaemon(False) 当一个进程启动之后,会默认产生一个主线程,因为线程是程序执行的最小单位,当设置多线程时,主线程会创建多个子线程,在Python中,默认 ...
- python主辅线程_python主线程捕获子线程的方法
最近,在做一个项目时遇到的了一个问题,主线程无法捕获子线程中抛出的异常. 先看一个线程类的定义 ''''' Created on Oct 27, 2015 @author: wujz ''' impo ...
- java主线程控制子线程_CountDownLatch控制主线程等子线程执行完--Java多线程
1.[代码]CountDownLatch控制主线程等子线程执行完--Java多线程 package com.sihuatech.common; import java.util.concurrent. ...
- android广播怎样运行在子线程,android假如主线程依赖子线程A的执行结果,如何让A执行完成,之后主线程再往下执行呢?...
抛开你这段代码不看,单根据你的标题来回答: android假如主线程依赖子线程A的执行结果,如何让A执行完成,之后主线程再往下执行呢? 需要在子线程执行完成的地方,通过主线程的Handler发送一条消 ...
- android线程通信方式,Android 主线程和子线程通信问题
Android 如今不支持View在子线程中创建及调用其方法.假设要实现子线程内容更新之后.将结果及时反馈到主线程中,该怎样出来呢? 能够在主线程中创建Handler来实现. 这样子线程的结果.能够通 ...
- c++主线程和子线程
c++主线程和子线程 最近在学习c++多线程,写一篇博客记录下自己的收获. 一.main()函数是主线程函数,在main()函数中创建的线程属于子线程,那主线程和子线程的优先级谁更高呢? 可以看下另外 ...
- android判断主线程_Android主线程和子线程区别详解
主线程和子线程的区别 每个线程都有一个唯一标示符,来区分线程中的主次关系的说法. 线程唯一标示符:Thread.CurrentThread.ManagedThreadID; UI界面和Main函数均为 ...
- python线程的注意点(线程之间执行是无序的、主线程会等待所有的子线程执行结束再结束(守护主线程)、线程之间共享全局变量、线程之间共享全局变量数据出现错误问题(线程等待(join)、互斥锁))
1. 线程的注意点介绍 线程之间执行是无序的 主线程会等待所有的子线程执行结束再结束 线程之间共享全局变量 线程之间共享全局变量数据出现错误问题 2. 线程之间执行是无序的 import thread ...
最新文章
- MySql清空表的方法介绍 : truncate table 表名
- 以云原生的名义,举办一次技术聚会
- 利用cmake查看OpenCV的源码的方法
- 词频统计 求最大k个数
- 用IIS建立的.net网站通过IP地址不能访问解决方法
- Python中threading的join和setDaemon的区别及用法
- 使用Hibernate和Spring构建Java Web应用程序
- ORACLE EBS 多账套总结
- 第十五届北京师范大学程序设计竞赛决赛(网络同步赛) B lca水 D 思维,找规律...
- 在fritzing中怎么导入_电路图制作软件(Fritzing)
- 缓存设计方案 你了解吗 SpringBoot 快速集成实现一级缓存Redis和二级缓存Caffeine 可自定义扩展
- 仿新浪新闻中异步替换关键字
- 利用DirectoryEntry获取域内计算机以及共享资源
- JTAG各类接口针脚定义及含义
- Pillow的下载与安装
- [转贴]风险管理之巴塞尔协议
- 有关“重要极限”的经典例题
- 《X战警:逆转未来》热映 破福斯海外开画纪录
- css源码笔记(四)【爱创课堂专业前端培训】
- java生成矢量条形码二维码