第五十九节 守护线程Daemon Threading

  • 前言
  • 实践

前言

守护线程是在后台运行的线程,对程序的运行并不重要,你的程序在退出前不会等待守护线程的完成,此类线程的特点是,当程序中主线程及所有非守护线程执行结束时,未执行完毕的守护线程也会随之消亡(进行死亡状态),程序将结束运行。守护线程常用于以下场景:后台任务,垃圾回收,等待输入,长期运行的代码段等等。

实践

我们这里写一个请求用户输入的代码,同时在后台运行一个计数器,每隔一秒加一,当用户输入字符串时,结束计数并退出整个程序

import threading
import timedef timer():count = 0while True:time.sleep(1)count += 1print(count)x = threading.Thread(target=timer, daemon=True)
x.start()
print(x.isDaemon())     # 判断该线程是否是守护线程
answer = input("Do you want to exit?\n")
>>> True
>>> Do you want to exit?
>>> 1
>>> 2
>>> 3
>>> yes

可见当用户输入yes时,后台计数器也随即停止

Python编程基础:第五十九节 守护线程Daemon Threading相关推荐

  1. Python编程基础:第二十九节 异常Exception

    第二十九节 异常Exception 前言 实践 前言 我们在写代码时不可避免地会出错,这时候编译器便会抛出异常并中断程序的执行.针对这种情况,我们可以采用异常处理的方式捕捉程序中的异常信息,并将异常信 ...

  2. Python编程基础:第十九节 索引Index Operator

    第十九节 索引Index Operator 前言 实践 前言 我们在字符串学习过程中已经接触过索引的相关内容,我们在这里做一个小结,Python中的索引分为两部分,一种是从左向右,从0开始依次递增,例 ...

  3. Python编程基础:第二十四节 作用域Scope

    第二十四节 作用域Scope 前言 实践 前言 在Python中每一个变量都有其自己的生命周期,我们一般将变量分为全局变量与局部变量,全局变量是指在整个代码内部都可以访问到的变量,局部变量是指只有在函 ...

  4. Python编程基础:第十六节 元组Tuple

    第十六节 元组Tuple 前言 实践 前言 我们这一节来学习一个与列表非常相似的数据结构--元组.需要注意的是元组定义好以后,其中的元素是不能改变的,并且所有元素是有序排列的, 实践 我们先来创建一个 ...

  5. Python编程基础:第十四节 列表Lists

    第十四节 列表Lists 前言 实践 前言 列表是一种非常常用的数据结构.我们可以用它来存储各种类型的数据. 实践 我们先来创建一个名为food的列表,里面存储了一系列我喜欢的食物名称: food = ...

  6. Python编程基础:第二十六节 kwargs参数**kwargs

    第二十六节 kwargs参数**kwargs 前言 实践 前言 上一节我们尝试传入任意多的参数,我们这一节来学习传入任意多具有参数名称的参数.kwargs参数将用户传入的参数打包为字典传入函数中用于进 ...

  7. python编程基础之二十九

    栈和队列: 栈:先进后出,其他没多少特别之处了,一般可以用列表模拟栈,也可以用双端队列,封死一端. 队列:先进先出,也可以用列表模拟,但是一般用库函数,需要导collections 包:主要是为了解决 ...

  8. 第2章 Python编程基础知识 第2.1节 简单的Python数据类型、变量赋值及输入输出

    第三节 简单的Python数据类型.变量赋值及输入输出 Python是一门解释性语言,它的执行依赖于Python提供的执行环境,前面一章介绍了Python环境安装.WINDOWS系列Python编辑和 ...

  9. python输入123输出321的编程_第2章 Python编程基础知识 第2.1节 简单的Python数据类型、变量赋值及输入输出...

    第三节 简单的Python数据类型.变量赋值及输入输出 Python是一门解释性语言,它的执行依赖于Python提供的执行环境,前面一章介绍了Python环境安装.WINDOWS系列Python编辑和 ...

最新文章

  1. MSI文件制作全过程
  2. 在学习中遇到的第一难点
  3. 常用解决方案技术一览
  4. xss攻击汇总--转
  5. 对协变和逆变的简单理解
  6. Bootstraptable源码
  7. 关于Patter类和Match类
  8. tensorflow中协调器 tf.train.Coordinator 和入队线程启动器 tf.train.start_queue_runners
  9. SQL Server Management Studio格式化SQL工具(可免费)
  10. cpc安装 mysql_专利电子申请客户端(CPC软件)
  11. AKKA:大数据下的并发编程模型
  12. 什么是事实表和维度表?什么是维度和度量?
  13. Sodinokibi勒索病毒利用Flash漏洞强势来袭
  14. VelocityTracker笔记
  15. windows 10下 opessl 64位编译
  16. 如何使用aircrack破解wifi密码
  17. CCNA学习笔记——第一章:OSI 和 TCP/IP 模型
  18. 三分的多种写法及对应的精度 三分套三分原理
  19. linux p4 命令行,linux下的p4用法
  20. 水火不容?研发人员也是产品经理!

热门文章

  1. Android监控wifi连接状态
  2. python_wifi
  3. CSP认证201612-1 中间数[C++题解]:遍历
  4. 通用工具之Pair和Tuple-《C++标准库(第二版)》读书笔记
  5. 《图解HTTP》读书笔记--第5章与HTTP协作的Web服务器
  6. WARNING: at net/core/dev.c:1905 skb_warn_bad_offload+0x94/0xb4() 解决思路
  7. 关于Webview带参访问服务器
  8. soap php 分开类,PHP SoapClient类型映射的行为有所不同
  9. usb打印机linux识别不了怎么办,win10不识别usb打印机怎么回事_win10系统不识别usb打印机如何修复-系统城...
  10. mysql qadir_MySQL 及 SQL 注入