Python实现周期性定时器的完整指南
本文详细介绍如何在Python中利用threading模块实现周期性定时器。通过继承Thread类创建Timer和LoopTimer,演示了如何设置执行间隔、传递参数以及启动和取消定时任务。包含完整的代码示例,帮助开发者掌握在后台线程中重复执行特定函数的技巧。
一、利用线程模块实现定时器功能
相关代码保存在 py_timer.py 文件中
#!/usr/bin/python
#coding:utf-8
import threading
import os
import sys
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()
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:
break
def testlooptimer():
print("loop timer")
if __name__ == '__main__':
t = LoopTimer(3.0,testlooptimer)
t.start()
二、具体使用方式
import py_timer
def 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周期性定时器实现的详细介绍,希望上述内容能为读者提供有价值的参考,同时也欢迎大家继续支持本站获取更多技术分享。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













