死锁定义为一组互相竞争资源的线程因互相等待,导致永久阻塞的情况。
即;
如何解决死锁:
1、一次性申请所有的资源,直到拿到所有资源的锁再进行操作
2、主动释放其所占有的资源,synchronized是做不到的,使用lock
3、按资源id的从小到大的顺序去申请锁