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中使用HTMLParser解析html实例
Feb 08 Python
Python的Flask框架中的Jinja2模板引擎学习教程
Jun 30 Python
python用模块zlib压缩与解压字符串和文件的方法
Dec 16 Python
Python基础知识_浅谈用户交互
May 31 Python
python笔记:mysql、redis操作方法
Jun 28 Python
python 限制函数执行时间,自己实现timeout的实例
Jan 12 Python
python实现二维数组的对角线遍历
Mar 02 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
Nov 19 Python
torch 中各种图像格式转换的实现方法
Dec 26 Python
深入了解Python enumerate和zip
Jul 16 Python
Python数据分析库pandas高级接口dt的使用详解
Dec 11 Python
Python 实现二叉查找树的示例代码
Dec 21 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
轻松入门: 煮好咖啡的七个诀窍
2021/03/03 冲泡冲煮
十天学会php之第一天
2006/10/09 PHP
php生成随机密码的三种方法小结
2010/09/04 PHP
简单的移动设备检测PHP脚本代码
2011/02/19 PHP
php语言中使用json的技巧及json的实现代码详解
2015/10/27 PHP
php实现图片上传、剪切功能
2016/05/07 PHP
javascript eval和JSON之间的联系
2009/12/31 Javascript
jQuery+CSS 实现随滚动条增减的汽水瓶中的液体效果
2011/09/26 Javascript
输入密码检测大写是否锁定js实现代码
2012/12/03 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
2018/06/01 Javascript
JSON.stringify()方法讲解
2019/01/31 Javascript
Element-UI中Upload上传文件前端缓存处理示例
2019/02/21 Javascript
JavaScript刷新页面的几种方法总结
2019/03/28 Javascript
Vue-input框checkbox强制刷新问题
2019/04/18 Javascript
ssm+vue前后端分离框架整合实现(附源码)
2020/07/08 Javascript
JS继承实现方法及优缺点详解
2020/09/02 Javascript
Vue 实现一个简单的鼠标拖拽滚动效果插件
2020/12/10 Vue.js
python2.7的编码问题与解决方法
2016/10/04 Python
python3使用PyMysql连接mysql数据库实例
2017/02/07 Python
Tensorflow之构建自己的图片数据集TFrecords的方法
2018/02/07 Python
python用plt画图时,cmp设置方法
2018/12/13 Python
python实现飞行棋游戏
2020/02/05 Python
利用Python将图片中扭曲矩形的复原
2020/09/07 Python
New Balance天猫官方旗舰店:始于1906年,百年慢跑品牌
2017/11/15 全球购物
德国高尔夫商店:Par71.de
2020/11/29 全球购物
党委书记岗位职责
2013/11/24 职场文书
四年大学自我鉴定
2014/02/17 职场文书
乡镇总工会学雷锋活动总结
2014/03/01 职场文书
《翻越远方的大山》教学反思
2014/04/13 职场文书
先进员工获奖感言
2014/08/14 职场文书
工伤事故处理协议书怎么写
2014/10/15 职场文书
水知道答案观后感
2015/06/08 职场文书
如何写通讯稿
2015/07/22 职场文书
Nginx缓存设置案例详解
2021/09/15 Servers
AJAX实现省市县三级联动效果
2021/10/16 Javascript