Python守护线程用法实例


Posted in Python onJune 23, 2017

本文实例讲述了Python守护线程用法。分享给大家供大家参考,具体如下:

如果你设置一个线程为守护线程,就表示你在说这个线程是不重要的,在进程退出的时候,不用等待这个线程退出。如果你的主线程在退出的时候,不用等待那些子线程完成,那就设置这些线程的daemon属性。即在线程开始(thread.start())之前,调用setDeamon()函数,设定线程的daemon标志。(thread.setDaemon(True))就表示这个线程“不重要”。

如果你想等待子线程完成再退出,那就什么都不用做,或者显示地调用thread.setDaemon(False),设置daemon的值为false。新的子线程会继承父线程的daemon标志。整个Python会在所有的非守护线程退出后才会结束,即进程中没有非守护线程存在的时候才结束。

看下面的例子:

import time
import threading
def fun():
  print "start fun"
  time.sleep(2)
  print "end fun"
print "main thread"
t1 = threading.Thread(target=fun,args=())
#t1.setDaemon(True)
t1.start()
time.sleep(1)
print "main thread end"

结果:

main thread
start fun
main thread end
end fun

结论:程序在等待子线程结束,才退出了。

设置:setDaemon 为True

import time
import threading
def fun():
  print "start fun"
  time.sleep(2)
  print "end fun"
print "main thread"
t1 = threading.Thread(target=fun,args=())
t1.setDaemon(True)
t1.start()
time.sleep(1)
print "main thread end"

结果:

main thread
start fun
main thread end

结论:程序在主线程结束后,直接退出了。 导致子线程没有运行完。

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python实现去除代码前行号的方法
Mar 10 Python
浅谈python连续赋值可能引发的错误
Nov 10 Python
Python中利用aiohttp制作异步爬虫及简单应用
Nov 29 Python
python实现微信防撤回神器
Apr 29 Python
浅析python中while循环和for循环
Nov 19 Python
python将四元数变换为旋转矩阵的实例
Dec 04 Python
Python实现非正太分布的异常值检测方式
Dec 09 Python
Python3读写Excel文件(使用xlrd,xlsxwriter,openpyxl3种方式读写实例与优劣)
Feb 13 Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
May 28 Python
Python中有几个关键字
Jun 04 Python
python如何查看安装了的模块
Jun 23 Python
Python保存并浏览用户的历史记录
Apr 29 Python
python使用fcntl模块实现程序加锁功能示例
Jun 23 #Python
Django自定义认证方式用法示例
Jun 23 #Python
Django实现的自定义访问日志模块示例
Jun 23 #Python
详解Python文本操作相关模块
Jun 22 #Python
python字符串过滤性能比较5种方法
Jun 22 #Python
Python编程实现的简单Web服务器示例
Jun 22 #Python
Python实现复杂对象转JSON的方法示例
Jun 22 #Python
You might like
一周学会PHP(视频)Http下载
2006/12/12 PHP
PHP 5.0对象模型深度探索之属性和方法
2008/03/27 PHP
解析PHP中intval()等int转换时的意外异常情况
2013/06/21 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
2016/12/12 PHP
js实现运行代码需要刷新的解决方法
2007/08/18 Javascript
小试JQuery的AutoComplete插件
2011/05/04 Javascript
jQuery.Uploadify插件实现带进度条的批量上传功能
2016/06/08 Javascript
jQuery简单实现中间浮窗效果
2016/09/04 Javascript
js读取json文件片段中的数据实例
2017/03/09 Javascript
Vue 让元素抖动/摆动起来的实现代码
2018/05/31 Javascript
5分钟学会Vue动画效果(小结)
2018/07/21 Javascript
Vue 中 a标签上href无法跳转的解决方式
2019/11/12 Javascript
vue中使用腾讯云Im的示例
2020/10/23 Javascript
[01:06]欢迎来到上海,TI9
2018/08/26 DOTA
python实现数通设备端口监控示例
2014/04/02 Python
Python入门及进阶笔记 Python 内置函数小结
2014/08/09 Python
整理Python中的赋值运算符
2015/05/13 Python
python中的lambda表达式用法详解
2016/06/22 Python
python 捕获shell脚本的输出结果实例
2017/01/04 Python
python3.5 + PyQt5 +Eric6 实现的一个计算器代码
2017/03/11 Python
Python爬虫实现简单的爬取有道翻译功能示例
2018/07/13 Python
python处理两种分隔符的数据集方法
2018/12/12 Python
numpy linalg模块的具体使用方法
2019/05/26 Python
Python 实现交换矩阵的行示例
2019/06/26 Python
Python文件操作中进行字符串替换的方法(保存到新文件/当前文件)
2019/06/28 Python
Python中Flask-RESTful编写API接口(小白入门)
2019/12/11 Python
Python安装whl文件过程图解
2020/02/18 Python
python中wx模块的具体使用方法
2020/05/15 Python
python Xpath语法的使用
2020/11/26 Python
美国潜水装备、水肺潜水和浮潜设备商店:Leisure Pro
2018/08/08 全球购物
《傅雷家书》教学反思
2014/04/20 职场文书
小学生演讲稿大全
2014/04/25 职场文书
2014年前台个人工作总结
2014/11/14 职场文书
2016年班主任培训心得体会
2016/01/07 职场文书
八年级语文教学反思
2016/03/03 职场文书
全面盘点MySQL中的那些重要日志文件
2021/11/27 MySQL