# 死锁问题浅析
import threading
import time
def flower():
flag1 = mutexA.acquire()
if flag1:
print("flower,I need one")
time.sleep(1)
flag2 = mutexB.acquire()
if flag2:
print("flower,I need two")
mutexB.release()
mutexA.release()
print("done")
def meat():
flag1 = mutexB.acquire()
if flag1:
print("meat,I need two")
time.sleep(1)
flag2 = mutexA.acquire()
if flag2:
print("meat,I need one")
mutexA.release()
mutexB.release()
print("done1")
if __name__ == "__main__":
mutexA = threading.Lock()
mutexB = threading.Lock()
p1 = threading.Thread(target=flower)
p2 = threading.Thread(target=meat)
p1.start()
p2.start()
兄弟连学python
Python学习交流、资源共享群:563626388 QQ