在多线程场景下,记住,一定是多线程场景。假设有两个线程张三和李四,有两把锁,锁1和锁2。张三拿了锁1,李四拿了锁2,然后在双方都没有释放锁的情况下,分别想拿对方的锁,就完成了死锁。死锁在运行时无法发现,因为没报错,只是在相互等待对方的锁释放,然后处理自己的事情,结果陷入了无限等待。解决方法是减少在未释放当前锁的时候去申请另一个锁,减少锁嵌套
java 死锁的产生和解决
最新推荐文章于 2022-08-02 20:33:47 发布
在多线程场景下,记住,一定是多线程场景。假设有两个线程张三和李四,有两把锁,锁1和锁2。张三拿了锁1,李四拿了锁2,然后在双方都没有释放锁的情况下,分别想拿对方的锁,就完成了死锁。死锁在运行时无法发现,因为没报错,只是在相互等待对方的锁释放,然后处理自己的事情,结果陷入了无限等待。解决方法是减少在未释放当前锁的时候去申请另一个锁,减少锁嵌套