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实现将n个点均匀地分布在球面上的方法
Mar 12 Python
在Python的Flask框架下使用sqlalchemy库的简单教程
Apr 09 Python
深入解析Python中的WSGI接口
May 11 Python
解决python3在anaconda下安装caffe失败的问题
Jun 15 Python
13个最常用的Python深度学习库介绍
Oct 28 Python
解决安装pycharm后不能执行python脚本的问题
Jan 19 Python
10分钟用python搭建一个超好用的CMDB系统
Jul 17 Python
python小程序实现刷票功能详解
Jul 17 Python
python调用接口的4种方式代码实例
Nov 19 Python
Python中使用socks5设置全局代理的方法示例
Apr 15 Python
Python使用shutil模块实现文件拷贝
Jul 31 Python
python中pandas对多列进行分组统计的实现
Jun 18 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
星际中的相关伤害
2020/03/04 星际争霸
php 伪造本地文件包含漏洞的代码
2011/11/03 PHP
解密ThinkPHP3.1.2版本之模板继承
2014/06/19 PHP
php之curl实现http与https请求的方法
2014/10/21 PHP
java script编程起步(第三课)
2007/01/10 Javascript
JavaScript加密解密7种方法总结分析
2007/10/07 Javascript
获取URL地址中的文件名和参数的javascript代码
2009/09/02 Javascript
详解jQuery中的元素的属性和相关操作
2015/08/14 Javascript
Jquery+Ajax+PHP+MySQL实现分类列表管理(上)
2015/10/28 Javascript
jQuery实现选项联动轮播效果【附实例】
2016/04/19 Javascript
JavaScript对象数组如何按指定属性和排序方向进行排序
2016/06/15 Javascript
微信小程序实现缓存根据不同的id来进行设置和读取缓存
2017/06/12 Javascript
jQuery绑定事件方法及区别(bind,click,on,live,one)
2017/08/14 jQuery
使用socket.io实现简单聊天室案例
2018/01/02 Javascript
Angular整合zTree的示例代码
2018/01/24 Javascript
详解 vue better-scroll滚动插件排坑
2018/02/08 Javascript
vue调试工具vue-devtools安装及使用方法
2018/11/07 Javascript
在Python的Flask框架中实现单元测试的教程
2015/04/20 Python
python 实现自动远程登陆scp文件实例代码
2017/03/13 Python
Python subprocess模块常见用法分析
2018/06/12 Python
Python实现识别图片内容的方法分析
2018/07/11 Python
python把数组中的数字每行打印3个并保存在文档中的方法
2018/07/17 Python
Python Numpy:找到list中的np.nan值方法
2018/10/30 Python
pyenv虚拟环境管理python多版本和软件库的方法
2019/12/26 Python
Python单例模式的四种创建方式实例解析
2020/03/04 Python
解决pyinstaller打包运行程序时出现缺少plotly库问题
2020/06/02 Python
Python制作数据预测集成工具(值得收藏)
2020/08/21 Python
英国高端食品和葡萄酒超市:Waitrose
2016/08/23 全球购物
顶级宝石首饰网络零售商:Angara
2016/10/25 全球购物
台湾前三大B2C购物网站:MOMO购物网
2017/04/27 全球购物
PHP使用Redis队列执行定时任务实例讲解
2021/03/24 PHP
总监职责范文
2013/11/09 职场文书
道德模范先进事迹
2014/02/14 职场文书
幼儿园大班评语大全
2014/04/17 职场文书
只用20行Python代码实现屏幕录制功能
2021/06/02 Python