我是靠谱客的博主 怕孤独玫瑰,最近开发中收集的这篇文章主要介绍python守护线程_python之守护线程,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

昨天遇到一个问题 在一个python程序里面开了三个线程轮询处理三件事情,刚开始一切正常,但是下午的时候发现其中一个线程死掉了,只剩下另外两个线程在运行了,这时候也不想中断主进程,又需要系统自动把死掉的一个线程启动起来就想起了要做一个守护线程来监控三个工作线程是不是正常在工作。

查了一下手册python线程Thread类提供了以下方法:

run(): 用以表示线程活动的方法。

start():启动线程活动。

join([time]): 等待至线程中止。这阻塞调用线程直至线程的join() 方法被调用中止-正常退出或者抛出未处理的异常-或者是可选的超时发生。

isAlive(): 返回线程是否活动的。

getName(): 返回线程名。

setName(): 设置线程名。

这样就可以在守护线程里面使用isAlive()方法判断工作线程是否存活,如果死掉的话就重新建立一个工作线程,启动起来(这里要注意不能使用原来的线程让它start(),因为这个线程已经结束了,内存中的实例已经释放掉了,所以使用这个方法会报错)下面是监控的代码

#coding=utf-8

import time

from threading import Thread

class ticker(Thread):

def run(self):

while True:

print time.time()

if (time.time() > 1470883000):

break

pass

time.sleep(3)

pass

pass

class moniter(Thread):

def run(self):

while True:

global T

if (T.isAlive()):

print 't is alive'

else :

print 't is dead'

T = ticker()

T.start()

print 'checking '

time.sleep(5)

pass

pass

T = ticker()

T.start()

mo = moniter()

mo.start()

最后

以上就是怕孤独玫瑰为你收集整理的python守护线程_python之守护线程的全部内容,希望文章能够帮你解决python守护线程_python之守护线程所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部