Python 想要睡眠後,自動執行某個 Function,其他程式也要可以繼續執行,可以使用 Threading 的 Timer() 來達成。
Python 睡眠可繼續執行的 Thread Timer()
文件可見:threading — Thread-based parallelism — Python 3.9.7 documentation
- class threading.Timer(interval, function, args=None, kwargs=None)
- 若跑一跑臨時不想執行,可以呼叫 cancel()
- threading.Timer() 會建立一個 Timer 的執行緒,在 interval 的秒數後,呼叫 function。
- 註:interval 可以是小數 0.5 (0.5s)
範例
from threading import Timer def hello(): print("Hello World!") t = Timer(0.5, hello) t.start()
來驗證秒數與實際執行的範例
from threading import Timer import time def hello(): print("Hello World!") t = Timer(5, hello) # 在5秒後,自動執行 hello() t.start() for i in [1, 2, 3, 4, 5, 6]: print(i) time.sleep(1)
印出結果
1 2 3 4 5 Hello World! 6
您好..這個範例的結果有錯誤..應該是5秒後..才會印出"Hello World!"
哈,是耶,我改了~~~
應該是我在測試範例的時候,沒有耐心,用兩秒為單位.. XD