死锁现象与递归锁
一死锁现象
from threading import Thread, Lock
import time
mutex_a = Lock()
mutex_b = Lock()
class MyThread(Thread):
def __init__(self, name):
super(MyThread, self).__init__()
self.name = name
def run(self):
self.f1()
self.f2()
def f1(self):
mutex_a.acquire()
print('%s 拿到A锁' % self.name)
mutex_b.acquire()
print('%s 拿到B锁' % self.name)
mutex_b.release()
mutex_a.release()
def f2(self):
mutex_b.acquire()
print('%s 拿到B锁' % self.name)
time.sleep(2)
mutex_a.acquire()
print('%s 拿到A锁' % self.name)
mutex_a.release()
mutex_b.release()
if __name__ == '__main__':
for i in range(10):
t = MyThread('线程%s' % i)
t.start()递归锁
Last updated