首页 >后端开发 >Python教程 >如何使用Python的threading.Timer保持对重复函数的控制?

如何使用Python的threading.Timer保持对重复函数的控制?

Barbara Streisand
Barbara Streisand原创
2024-11-09 18:37:02462浏览

How to Maintain Control Over Repeating Functions Using Python's threading.Timer?

Threading.Timer - 维护对重复函数的控制

Python 的 threading.Timer 提供了一种机制来安排函数以指定的时间间隔运行。但是,使用多次调用 start() 的初始方法可能会导致运行时错误。

要解决此问题,建议创建自定义线程类,如下面的解决方案所示:

import threading

class MyThread(threading.Thread):
    def __init__(self, event, function):
        threading.Thread.__init__(self)
        self.stopped = event
        self.function = function

    def run(self):
        while not self.stopped.wait(0.5):
            self.function()

在这个类中,stopped事件用于控制线程的执行。该线程不是多次启动和停止计时器,而是连续运行,定期检查停止的事件。当事件设置后,线程终止。

在启动计时器的代码中,您可以使用已停止的事件来停止计时器:

stopFlag = threading.Event()
thread = MyThread(stopFlag, function)
thread.start()

# To stop the timer later on
stopFlag.set()

这种方法提供了一个干净的方法启动、停止和重置计时器的有效方法,允许灵活控制重复函数的执行。

以上是如何使用Python的threading.Timer保持对重复函数的控制?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn