什么是死锁?死锁如何解决

77 阅读2分钟

目录

写在前面

什么是死锁

解决方案1通过判断锁顺序来避免死锁

解决方案2使用可轮训的锁来避免死锁

解决方案3使用带有时间限制的锁


写在前面

    死锁相信大家都不陌生,死锁发生通常要伴随着系统的重启,这非常头疼。。

    相信看完这一篇文章,你会对死锁更加深入的了解,并且有着更好的处理办法。

什么是死锁

    每个人都拥有其他人需要的资源,同时又等待其他人已经拥有的资源,并且每个人在获得所有需要的资源之前都不会放弃已经拥有的资源。线程A持有锁L并想获得锁M的同时,线程B持有锁M并尝试获得锁L,那么这两个线程将永远等待下去。这种情况就是最简单的死锁形式。

解决方案1通过判断锁顺序来避免死锁

解决方案2使用可轮训的锁来避免死锁

一直while循环判断是否上锁,这样可以避免死锁

解决方案3使用带有时间限制的锁