python – 递归锁 假设创建两个锁A,B 并执行DIgui_clock()
分别执行def A(),def B()。 当第一个线程执行完A()后,释放A,B锁,进入B()。 此时第二个线程开始执行A()。 则当第一个和第二线程分别执行到16,7行时,因无法获得另一个锁。 (第一个:有B锁无A锁 第二个:有A锁无B锁) 此时线程将会卡死,为死锁。
解决方法: 使用递归锁:threading.RLock() 着用就能完美解决死锁的情况。