# coding=utf-8
# 死锁:在线程共享多个资源的时候,如果两个线程分别占有一部分资源并且同时等待对方的资源
# 死锁的本质原因:释放锁有先后顺序,需求锁的时候让不同线程占有了,然后因为都互相需求对方的锁,
# 互相等待对方的锁释放获取其锁才能继续执行,所以互相等待,死锁.(一般都是由两把锁以上会出现的问题)
# 解决方案:
# 递归锁:r_lock=threading.Rlock()(相当于锁外面与锁里面用的是同一把锁),让五个线程同时只能有一个线程能获取锁被执行
# 递归锁本质上内部维护着一个寄存器count
