'''
互相锁住对方线程需要的资源,造成死锁局面
递归锁,用于解决死锁的问题,可重复锁
'''
import threading
from threading import Thread
import time
honor = threading.RLock()
class Boy(Thread):
def run(self):
print("妈蛋气死劳资了战斗开始...")
if honor.acquire():
print("Boy:Gril必须先道歉!")
time.sleep(1)
if honor.acquire(timeout=-1):
honor.release()
honor.release()
print("Boy:im sorry too!")
else:
print("Boy:....")
print("Boy战斗结束")
class Girl(Thread):
def run(self):
print("妈蛋气死老娘了战斗开始...")
if honor.acquire():
time.sleep(2)
print("Gril:Boy必须先道歉!")
if honor.acquire(timeout=-1):
honor.release()
honor.release()
print("Girl:im sorry too!")
else:
print("Girl:妈蛋分手!")
print("Girl战斗结束")
if __name__ == '__main__':
Boy().start()
Girl().start()
pass