详解Python的多线程定时器threading.Timer

 更新时间:2022年01月11日 15:30:23   作者:mb5fe5608dce902  
这篇文章主要为大家介绍了Python的多线程定时器,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助

threading.Timer

一次timer只生效一次,不会反复循环,如果实现循环触发,代码如下:

import time
import threading
def createTimer():
    t = threading.Timer(2, repeat)
    t.start()
def repeat():
    print('Now:', time.strftime('%H:%M:%S',time.localtime()))
    createTimer()
createTimer()

这段代码的功能就是每2秒打印出当前的时间,即一个2秒的定时器。运行效果如下:

E:\py>python timer.py
Now: 16:36:15
Now: 16:36:17
Now: 16:36:19
Now: 16:36:21
Now: 16:36:23
Now: 16:36:25
Now: 16:36:27

cancel函数,可以在定时器被触发前,取消这个Timer。

允许多个定时任务,并发执行,互不干扰。

如果想更精确地控制定时器函数的触发时间,就需要把下一次定时器触发的代码,放在定时器执行代码最开始的地方,如下:

import time
import threading
def createTimer():
    t = threading.Timer(2, repeat)
    t.start()
def repeat():
    createTimer()
    print('Now-1:', time.strftime('%H:%M:%S',time.localtime()))
    time.sleep(3)
    print('Now-2:', time.strftime('%H:%M:%S',time.localtime()))
createTimer()

定时器repeat要执行至少3秒,但是2秒后,下一个定时器就会被触发,这是允许的!上面这段代码的执行效果如下:

E:\py>python timer.py
Now-1: 16:46:12
Now-1: 16:46:14
Now-2: 16:46:15
Now-1: 16:46:16
Now-2: 16:46:17
Now-1: 16:46:18
Now-2: 16:46:19
Now-1: 16:46:20
Now-2: 16:46:21
Now-1: 16:46:22
Now-2: 16:46:23

从打印信息来分析,同时存在多个repeat函数的执行序列是没问题的,这种情况下,还需要认真考虑定时器函数的可重入问题!

以上就是对threading.Timer使用的介绍,请注意两种设置定时器循环计时开始的方法,以及他们的区别。

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • 在python中logger setlevel没有生效的解决

    在python中logger setlevel没有生效的解决

    今天小编就为大家分享一篇在python中logger setlevel没有生效的解决,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python3 正在毁灭 Python的原因分析

    Python3 正在毁灭 Python的原因分析

    Python 2强大的一个地方是它身后巨大的第三方库,恩,可以做任何事。Python 3没有这个。是的,很多库已经移植了,但是仍然有数以十倍的库没有移植过去,而且也不太容易
    2014-11-11
  • 使用wxPython实现Windows11任务栏通知功能

    使用wxPython实现Windows11任务栏通知功能

    这篇文章主要为大家详细介绍了如何使用 wxPython 模块,在 Windows 11 中实现任务栏通知功能,文中的示例代码简洁易懂,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-10-10
  • python实现下载指定网址所有图片的方法

    python实现下载指定网址所有图片的方法

    这篇文章主要介绍了python实现下载指定网址所有图片的方法,涉及Python针对页面的读取、遍历及文件操作的相关技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-08-08
  • Python+SimpleRNN实现股票预测详解

    Python+SimpleRNN实现股票预测详解

    这篇文章主要为大家详细介绍了如何利用Python和SimpleRNN实现股票预测效果,文中的示例代码讲解详细,对我们学习有一定帮助,需要的可以参考一下
    2022-05-05
  • Python3匿名函数lambda介绍与使用示例

    Python3匿名函数lambda介绍与使用示例

    这篇文章主要给大家介绍了关于Python3匿名函数lambda与使用的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Python3具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-05-05
  • pytorch简介

    pytorch简介

    Pytorch是torch的python版本,是由Facebook开源的神经网络框架,专门针对 GPU 加速的深度神经网络(DNN)编程。这篇文章给大家介绍pytorch的相关知识,感兴趣的朋友一起看看吧
    2020-11-11
  • python with语句的原理与用法详解

    python with语句的原理与用法详解

    这篇文章主要介绍了python with语句的原理与用法,结合实例形式详细分析了python with语句基本概念、原理、用法及操作注意事项,需要的朋友可以参考下
    2020-03-03
  • Python中namedtuple 命名元祖的使用

    Python中namedtuple 命名元祖的使用

    本文主要介绍了Python中namedtuple 命名元祖的使用,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-04-04
  • python类中super() 的使用解析

    python类中super() 的使用解析

    super() 函数是用于调用父类(超类)的一个方法。这篇文章主要介绍了python类中super() 的使用,需要的朋友可以参考下
    2019-12-12

最新评论