在 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中文網其他相關文章!