Timer對象用于在稍后的某個時間執行一個函數。
t=Timer(interval,func,args,kwargs)
創建定時器對象,在interval秒后運行函數func,args和kwargs提供傳遞給func的參數和關鍵字參數。
在調用start()方法后才能啟動計定時器。
t.start():啟動定時器。
t.cancal():如果函數還未執行,取消定時器。
原始鎖(互斥鎖)是一個同步原語,狀態有兩種:『已鎖定』、『未鎖定』。
如果狀態已經鎖定,嘗試獲取鎖將阻塞,直到鎖被釋放為止。如果有多個線程等待獲取鎖,當鎖被釋放時,只有一個線程獲得它,獲取順序是不定的。
lock=Lock()
創建新的Lock對象,初始狀態為未鎖定。
lock.acquire(blocking):獲取鎖,如果有必要,需要阻塞到釋放鎖為止。
如果blocking為false,當無法獲取鎖時將立即返回False,如果成功獲取鎖則返回True。
lock.release():釋放一個鎖,當鎖處于未鎖定狀態時,或者從與原本調用acquire()方法的線程的不同線程調用此方法,將會報錯。
可重入鎖是一個類似于Lock對象的同步原語,但同一個線程可以多次獲取它。
它允許擁有鎖的線程執行嵌套的acquire()和release()操作。在這種情況下,只有最外層的Release()操作才能將鎖重置微未鎖定狀態。
rlock=RLock()
創建新的可重入鎖對象。
rlock.acquire(blocking):獲取鎖,如果有必要,需要阻塞到鎖釋放為止。
如果沒有線程擁有鎖,它將被鎖定,而且遞歸級別被置為1.
如果此線程已經擁有鎖,鎖的遞歸級別加1,而且函數立即返回。
rlock.release():通過減少鎖的遞歸級別來釋放它。如果在減值后遞歸級別為0,鎖將被重置為未鎖定狀態。否則,鎖將保持已鎖定狀態。
只能由目前擁有鎖的線程來調用此方法。
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com