雖然線程可以在程序的執行過程中提高程序的運行效率,但是其帶來的影響卻難以忽略。
Lock類是threading中用於鎖定當前線程的鎖定類。顧名思義,其作用是對當前運行中的線程進行鎖定,只有當前線程被釋放后,后續線程才可以繼續操作。
具體代碼如下:
import threading,time,random count = 0 class MyThread_lock(threading.Thread): def __init__(self,lock,threadName): super(MyThread_lock,self).__init__(name=threadName) self.lock = lock def run(self): global count self.lock.acquire() #acquire()方法提供了確定對象被鎖定的標志 for i in range(5): count +=1 time.sleep(0.3) print(self.getName(),count) self.lock.release() #release()在對象被當前線程使用完畢后將當前對象釋放 lock = threading.Lock() for i in range(2): MyThread_lock(lock,"MyThreadName:"+str(i)).start()
Lock被傳遞給MyThread_lock,並在run方法中人為鎖定當前線程,必須等線程執行完畢后,后續的線程才可以繼續執行。程序執行結果如下: