python Timer 定时器

一、Timer定时器的基本用法

1. Timer的作用

  • Timerthreading模块中的一个类,用于延迟指定时间后执行某个函数,即“定时器”。
  • 适合需要“延迟执行”或“定时执行一次”的场景。

2. 基本用法示例

from threading import Timer

def fun():
    print('hello world')

if __name__ == '__main__':
    timer = Timer(2, fun)  # 创建一个定时器,2秒后执行fun
    timer.start()          # 启动定时器
  • 这段代码会在主程序启动后等待2秒,然后输出hello world

二、让定时器循环执行

1. Timer本身只会执行一次

  • Timer只会在指定时间后执行一次目标函数,不会自动循环。

2. 如何让定时器循环?

  • 可以在fun函数内部再次创建并启动一个新的Timer,实现“伪循环定时器”。
循环定时器示例
from threading import Timer

def fun():
    print('hello world')
    timer = Timer(1, fun)  # 每次fun执行时都创建一个新的定时器
    timer.start()

if __name__ == '__main__':
    timer = Timer(1, fun)
    timer.start()
  • 这样,hello world每隔1秒输出一次,实现了循环定时的效果。
  • 注意:每次都要新建Timer对象,否则只会执行一次。

三、递归算法示例

def fun():
    print('hello world')
    fun()

if __name__ == '__main__':
    fun()

1. 递归的含义

  • 递归是指函数自己调用自己
  • 这段代码会无限递归,不断输出hello world,直到栈溢出(RecursionError)

2. 递归与定时器的区别

  • 递归调用是同步、立即的,每次调用会占用一个新的函数调用栈,速度极快,容易导致栈溢出。
  • Timer定时器是异步、延迟的,每次调用会在新线程中延迟执行,不会导致栈溢出,但会不断创建新线程,长期运行也可能导致资源耗尽。

四、总结

  • Timer用于延迟执行某个函数,适合定时任务。
  • 循环定时器可以通过在回调函数内递归创建Timer实现。
  • 递归算法是函数自己调用自己,适合有终止条件的场景,否则会导致栈溢出。
  • Timer循环和递归调用的区别:Timer是异步、延迟、线程安全的,递归是同步、立即、易栈溢出。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

贵哥的编程之路(热爱分享 为后来者)

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值