python中threading中的lock類


             雖然線程可以在程序的執行過程中提高程序的運行效率,但是其帶來的影響卻難以忽略。

    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方法中人為鎖定當前線程,必須等線程執行完畢后,后續的線程才可以繼續執行。程序執行結果如下:

      


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM