在 Python 中实现连续函数执行
对于需要以指定时间间隔连续执行的任务,Python 提供了各种选项。一种简单的方法涉及利用简单的循环与时间模块的 sleep() 函数结合使用:
while True: # Code executed here time.sleep(60)
虽然此代码似乎实现了所需的结果,但仍存在需要考虑的潜在缺点。具体来说,当执行的代码阻塞主线程时,它可以阻止计划的函数按时运行。
替代解决方案
为了更强大和灵活的调度,请考虑sched 模块,提供通用事件调度程序。通过使用 sched,您可以定义和控制计划事件,确保它们及时执行:
import sched, time def do_something(scheduler): # schedule the next call first scheduler.enter(60, 1, do_something, (scheduler,)) print("Doing stuff...") # then do your stuff my_scheduler = sched.scheduler(time.time, time.sleep) my_scheduler.enter(60, 1, do_something, (my_scheduler,)) my_scheduler.run()
或者,如果您在程序中使用事件循环库(例如 asyncio、trio、tkinter 或 PyQt5) ,利用其方法在现有事件循环内安排任务。这种方法可确保应用程序中的最佳协调和响应能力。
以上是如何在Python中实现函数连续执行,同时避免线程阻塞?的详细内容。更多信息请关注PHP中文网其他相关文章!