首页 > 编程 > Python > 正文

对python周期性定时器的示例详解

2019-11-25 13:15:20
字体:
来源:转载
供稿:网友

一、用thread实现定时器

py_timer.py文件

#!/usr/bin/python#coding:utf-8import threadingimport osimport sysclass _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()  def cancel(self):    self.finished.set()   def run(self):    self.finished.wait(self.interval)     if not self.finished.is_set():      self.function(*self.args, **self.kwargs)    self.finished.set()    class LoopTimer(_Timer):  def __init__(self, interval, function, args=[], kwargs={}):    _Timer.__init__(self, interval, function, args, kwargs)  def run(self):    while True:      if not self.finished.is_set():        self.finished.wait(self.interval)        self.function(*self.args, **self.kwargs)       else:        breakdef testlooptimer():  print("loop timer")if __name__ == '__main__':  t = LoopTimer(3.0,testlooptimer)  t.start()

二、 使用

import py_timerdef serv_start():#Perform first fork.try:      thread_timer = py_timer.LoopTimer(timeout, start_timer)      thread_timer.start()      thread_timer.cancel() #    except Exception, ex:                                  print("daemon: %s %s", type(ex), ex)def start_timer():print 'hello'

以上这篇对python周期性定时器的示例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林网。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表