什么是守护线程:在后台运行,为其他线程提供服务的线程成为守护线程。

为什么要引入守护线程:

thread模块不支持守护线程的概念,当主线程退出时,所有的子线程都将终止,不管它们是否仍在工作,

如果你不希望发生这种行为,就要引入守护线程的概念。

守护线程的调用格式:thread.setDaemon(True)

如何使用守护线程:

1.当只有一个子线程并且为守护线程,那么这个守护线程就会等待主线程运行完毕后挂掉

2.当有多个子线程时,守护线程就会等待所有的子线程运行完毕后,守护线程才会挂掉

什么时候设置守护线程:

如果主线程准备退出时,不需要等待某些子线程执行完成,就可以为这些子线程设置守护线程标记。该标记为真时,表示该线程是不重要的,或者说该线程只是用来等待客户端请求而不做任何其它事情。

使用守护线程的前提:

1.要将一个线程设置为守护线程,需要在启动线程之前执行如下赋值语句:thread.daemon=True。

2.要检查线程的守护状态,也只需要检查这个值即可。一个新的子线程会继承父线程的守护标记。

3.主线程将在所有非守护线程退出之后才退出,换句话说,就是没有存活的非守护线程时。

守护线程在threading模块中的工作方式:

守护线程一般是一个等待客户端请求服务的服务器。如果没有客户端请求,守护线程就是空闲的,如果把一个线程设置为守护线程,就表示这个线程是不重要的,进程退出时就不需要等待这个线程执行完成。

注意:

1、守护线程会在该进程内所有非守护线程全部都运行完毕后,守护线程才会挂掉。

2、守护线程守护的是:当前进程内所有的子线程!

3、主线程在其他非守护线程运行完毕后才算运行完毕,守护线程在此时被回收。

最新文章

  1. tp框架实现验证码
  2. Nodejs初阶之express
  3. 自定义Docker容器的 hostname
  4. Android客户端性能优化(魅族资深工程师毫无保留奉献)
  5. weedfs getsockopt: connection timed out
  6. 关于网页pc端以及移动端的兼容性——测试
  7. 机器学习&数据挖掘笔记_15(关于凸优化的一些简单概念)
  8. 如何安装PANABIT?
  9. 设计模式 ( 十八 ) 策略模式Strategy(对象行为型)
  10. C# DateTime 日期加1天 减一天 加一月 减一月 等方法(转)
  11. C# textbox 滚动条 随文本输入 滚动
  12. vim配色方案
  13. C++ Prime:sizeof运算符
  14. assert断言
  15. MVP框架 – Ted Mosby的软件架构
  16. 升讯威微信营销系统开发实践:(1)功能概要与架构设计( 完整开源于 Github)
  17. 说明split()与join()函数的区别?
  18. 配置httpd支持https
  19. Python:ModuleNotFoundError: No module named 'windows'
  20. 【maven】之打包war依赖子项目jar

热门文章

  1. Java实现 蓝桥杯VIP 算法训练 集合运算
  2. Java实现 蓝桥杯VIP 算法训练 数列
  3. Java实现第八届蓝桥杯图形排版
  4. Java实现 LeetCode 137 只出现一次的数字 II(二)
  5. java实现洛谷P1308统计单词数
  6. java实现第四届蓝桥杯阶乘位数
  7. python—模块与包
  8. mybatis 逆向工程使用姿势不对,把表清空了,心里慌的一比,于是写了个插件。
  9. 轻松解决Github连接缓慢、图裂问题
  10. Python 导入CSV、JSON、XML数据