使用诸如Lock、RLock、Semphore之类的锁原语时,必须多加小心,锁的错误使用很容易导致死锁或相互竞争。依赖锁的代码应该保证当出现异常时可以正常的释放锁。此外,编写代码时一般应该避免同时获取多个锁,例如下面就应该尽量避免:这通知很统一导致应用程序神秘死锁,尽管与集中策略可以避免出现这种情况,但是最好在编写代码时避免这种嵌套锁。

Python线程下使用锁的技巧分享