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 27 Python
使用Python脚本来控制Windows Azure的简单教程
Apr 16 Python
听歌识曲--用python实现一个音乐检索器的功能
Nov 15 Python
python实现超市扫码仪计费
May 30 Python
TensorFlow实现Logistic回归
Sep 07 Python
python地震数据可视化详解
Jun 18 Python
Python操作远程服务器 paramiko模块详细介绍
Aug 07 Python
Python PIL图片添加字体的例子
Aug 22 Python
python与mysql数据库交互的实现
Jan 06 Python
pandas分批读取大数据集教程
Jun 06 Python
使用 prometheus python 库编写自定义指标的方法(完整代码)
Jun 29 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
Dec 11 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 7 vs HHVM 多角度比较
2016/02/14 PHP
yii2.0实现创建简单widgets示例
2016/07/18 PHP
windows下的WAMP环境搭建图文教程(推荐)
2017/07/27 PHP
PHP实现压缩图片尺寸并转为jpg格式的方法示例
2018/05/10 PHP
基于jquery的bankInput银行卡账号格式化
2012/08/22 Javascript
js控制分页打印、打印分页示例
2014/02/08 Javascript
js实现文字跑马灯效果
2017/02/23 Javascript
ES6中箭头函数的定义与调用方式详解
2017/06/02 Javascript
JS实现的随机排序功能算法示例
2017/06/09 Javascript
关于vue-resource报错450的解决方案
2017/07/24 Javascript
浅谈Angular 的变化检测的方法
2018/03/01 Javascript
微信小程序实现跑马灯效果完整代码(附效果图)
2018/05/30 Javascript
使用js和canvas实现时钟效果
2020/09/08 Javascript
用Python实现通过哈希算法检测图片重复的教程
2015/04/02 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
2018/02/24 Python
Python实现动态添加属性和方法操作示例
2018/07/25 Python
Python Datetime模块和Calendar模块用法实例分析
2019/04/15 Python
为什么你还不懂得怎么使用Python协程
2019/05/13 Python
pyqt5 tablewidget 利用线程动态刷新数据的方法
2019/06/17 Python
python安装gdal的两种方法
2019/10/29 Python
tensorflow实现残差网络方式(mnist数据集)
2020/05/26 Python
python用什么编辑器进行项目开发
2020/06/17 Python
Jupyter Notebook添加代码自动补全功能的实现
2021/01/07 Python
canvas实现有递增动画的环形进度条的实现方法
2019/07/10 HTML / CSS
HTML5的新特性(1)
2016/03/03 HTML / CSS
德国帽子专家:Hutshopping
2019/11/03 全球购物
阿尔卡特(中国)的面试题目
2014/08/20 面试题
最受欢迎的自我评价
2013/12/22 职场文书
公务员平时考核实施方案
2014/03/11 职场文书
爱国主义教育演讲稿
2014/08/26 职场文书
关于国庆节的演讲稿
2014/09/05 职场文书
致运动员的广播稿
2015/08/19 职场文书
2016年共产党员个人承诺书
2016/03/24 职场文书
MySQL 数据丢失排查案例
2021/05/08 MySQL
python3 hdf5文件 遍历代码
2021/05/19 Python
如何使用注解方式实现 Redis 分布式锁
2022/07/23 Redis