对python周期性定时器的示例详解
时间:2022-04-02 10:17 作者:admin610456
一、用thread实现定时器
py_timer.py文件
#!/usr/bin/python/' target='_blank'>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周期性定时器的示例详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
(责任编辑:admin)