定時器對象是使用Thread
類的子類Timer
類創建的。使用這個類,我們可以為任何應該在一定時間后運行的操作設置一個延遲(計時器),并且可以在該延遲期間輕松取消。
計時器通過調用其start()
方法啟動,就像普通線程一樣。定時器線程可以通過調用其cancel()
方法來停止(在其動作開始之前)。
定時器對象通常用于實現預定的任務,這些任務應該只在某個時刻之后執行。
此外,定時器對象沒有必要在計劃的時間之后執行,因為在此之后 python intrepreter 會尋找一個線程來執行定時器對象任務,如果該線程不可用,就會導致更多的等待。
創建計時器對象的語法
以下是Timer
類構造器的語法:
threading.Timer(interval, function, args=[], kwargs={})
這樣,我們可以創建一個計時器對象,在經過interval
秒后,該對象將運行帶有參數args
和關鍵字參數kwargs
的功能。
Timer
類方法
在Timer
類中,我們有兩種方法用于啟動和取消定時器對象的執行。
start()
方法
此方法用于啟動計時器對象的執行。當我們調用這個方法時,定時器對象啟動它的定時器。
cancel()
方法
此方法用于停止計時器并取消計時器對象操作的執行。這只有在計時器尚未執行其動作的情況下才會起作用。
舉個例子
下面我們有一個簡單的例子,我們創建一個定時器對象并啟動它。
import threading
def task():
print("timer object task running...")
if __name__=='__main__':
t = threading.Timer(10, task)
t.start() # after 10 seconds, task will be executed
上面的程序是一個簡單的程序,現在讓我們使用 cancel 方法來取消 timer 對象任務的執行。
在上面的程序中,首先注釋第 13 行和第 14 行的代碼并運行程序,然后取消注釋這些行,并看到cancel()
方法在起作用。