对python周期性定时器的示例详解
一、用thread实现定时器
py_timer.py文件
#!/usr/bin/python #coding:utf-8 importthreading importos importsys class_Timer(threading.Thread): def__init__(self,interval,function,args=[],kwargs={}): threading.Thread.__init__(self) self.interval=interval self.function=function self.args=args self.kwargs=kwargs self.finished=threading.Event() defcancel(self): self.finished.set() defrun(self): self.finished.wait(self.interval) ifnotself.finished.is_set(): self.function(*self.args,**self.kwargs) self.finished.set() classLoopTimer(_Timer): def__init__(self,interval,function,args=[],kwargs={}): _Timer.__init__(self,interval,function,args,kwargs) defrun(self): whileTrue: ifnotself.finished.is_set(): self.finished.wait(self.interval) self.function(*self.args,**self.kwargs) else: break deftestlooptimer(): print("looptimer") if__name__=='__main__': t=LoopTimer(3.0,testlooptimer) t.start()
二、使用
importpy_timer defserv_start(): #Performfirstfork. try: thread_timer=py_timer.LoopTimer(timeout,start_timer) thread_timer.start() thread_timer.cancel()# exceptException,ex: print("daemon:%s%s",type(ex),ex) defstart_timer(): print'hello'
以上这篇对python周期性定时器的示例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。