zoukankan      html  css  js  c++  java
  • python 定时器 threading.timer到底怎么用?

    自己摸索才能真正理解python的threading.Timer()定时器的用法。

    首先让我们看下Timer的源码,怎么定义这个定时时间的:

    需要操作的任务在达到设置的定时时间还没有结束,调用Timer()中:调用的函数/方法。

    class Timer(Thread):
        """Call a function after a specified number of seconds:
    
                t = Timer(30.0, f, args=None, kwargs=None)
                t.start()
                t.cancel()     # stop the timer's action if it's still waiting
    
        """
    
        def __init__(self, interval, function, args=None, kwargs=None):
            Thread.__init__(self)
            self.interval = interval
            self.function = function
            self.args = args if args is not None else []
            self.kwargs = kwargs if kwargs is not None else {}
            self.finished = Event()
    
        def cancel(self):
            """Stop the timer if it hasn't finished yet."""
            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()

    举个例子:

    import time
    from threading import Timer
    
    
    def fun():
        print("hello, world")
    
    
    if __name__=='__main__':
        t = Timer(5, fun) # 超过5秒,执行fun函数
        t.start()
        sum = 0
        for i in range(6): 
            sum = i+1
            time.sleep(1)  # 等待了6次超过Timer中的5秒
        t.cancel()  # 结束后将timer取消掉
  • 相关阅读:
    css中vertical-align(垂直对齐)的使用
    CSS教程:div垂直居中的N种方法[转]
    前后端分离开发部署模式
    <a>标签的href和onclick属性
    css 字体样式
    谷歌开发者工具界面介绍
    cps和dsp渠道手法的研究
    网络资源汇总
    DataWorks(数据工场)
    vue入门学习笔记
  • 原文地址:https://www.cnblogs.com/ananmy/p/14506092.html
Copyright © 2011-2022 走看看