溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python 利用Timer定時器控制函數(shù)在特定時間執(zhí)行

發(fā)布時間:2020-09-24 10:21:19 來源:億速云 閱讀:459 作者:Leah 欄目:編程語言

這篇文章將為大家詳細講解有關(guān)Python 利用Timer定時器控制函數(shù)在特定時間執(zhí)行,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個參考,希望大家閱讀完這篇文章后對相關(guān)知識有一定的了解。

Thread類有一個Timer子類,該子類可用于控制指定函數(shù)在特定時間內(nèi)執(zhí)行一次。例如如下程序:

from threading import Timer

def hello():
    print("hello, world")
# 指定10秒后執(zhí)行hello函數(shù)
t = Timer(10.0, hello)
t.start()

上面程序使用 Timer 控制 10s 后執(zhí)行 hello 函數(shù)。

需要說明的是,Timer 只能控制函數(shù)在指定時間內(nèi)執(zhí)行一次,如果要使用 Timer 控制函數(shù)多次重復(fù)執(zhí)行,則需要再執(zhí)行下一次調(diào)度。

如果程序想取消 Timer 的調(diào)度,則可調(diào)用 Timer 對象的 cancel() 函數(shù)。例如,如下程序每 1s 輸出一次當(dāng)前時間:

from threading import Timer
import time

# 定義總共輸出幾次的計數(shù)器
count = 0
def print_time():
    print("當(dāng)前時間:%s" % time.ctime())
    global t, count
    count += 1
    # 如果count小于10,開始下一次調(diào)度
    if count < 10:
        t = Timer(1, print_time)
        t.start()
# 指定1秒后執(zhí)行print_time函數(shù)
t = Timer(1, print_time)
t.start()

上面程序開始運行后,程序控制 1s 后執(zhí)行 print_time() 函數(shù)。print_time() 函數(shù)中的代碼會進行判斷,如果 count 小于 10,程序再次使用 Timer 調(diào)度 1s 后執(zhí)行 print_time() 函數(shù),這樣就可以控制 print_time() 函數(shù)多次重復(fù)執(zhí)行。

在上面程序中,由于只有當(dāng) count 小于 10 時才會使用 Timer 調(diào)度 1s 后執(zhí)行 print_time() 函數(shù),因此該函數(shù)只會重復(fù)執(zhí)行 10 次。

關(guān)于Python 利用Timer定時器控制函數(shù)在特定時間執(zhí)行就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI