RuntimeError: release unlocked lock

是不是有小夥伴是這一樣寫的啊threading.Lock().acquire() ……threading.Lock().release()
因爲threading.Lock()是創建了一個鎖像,後面釋放時,你是建立了一個新得鎖對象,並且釋放到那個新的對象。

class myThread(threading.Thread):
    def __init__(self, name, s):
        threading.Thread.__init__(self)
        self.s = s
        self.name = name

    def run(self):
        print("beigin ",self.name)
        threading.Lock().acquire()
        print_time(self.name,self.s)
        print("end ", self.s)
        threading.Lock().release()

所以加一個對象就行了

lock = threading.Lock()
class myThread(threading.Thread):
    def __init__(self, name, s):
        threading.Thread.__init__(self)
        self.s = s
        self.name = name

    def run(self):
        print("beigin ",self.name)
        lock.acquire()
        print_time(self.name,self.s)
        print("end ", self.s)
        lock.release()

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章