其他分享
首页 > 其他分享> > 面试什么是死锁?怎么避免死锁?

面试什么是死锁?怎么避免死锁?

作者:互联网

你知道什么是死锁吗?

多个进程可以竞争有限数量的资源。当一个进程申请资源时,如果这时没有可用资源,那么这个进程进入等待状态。有时,如果所申请的资源被其他等待进程占有,那么该等待进程有可能再也无法改变状态。这种情况成为死锁。在这里插入图片描述

就好比线程1占有线程A需要获取到资源B才能释放资源A的锁,而同时,线程2占有资源B需要在获取资源A才能释放资源B的锁,两个线程就会在一直等待。

死锁的四个条件

如果系统中以下四个条件同时成立,那么就能引起死锁:

如何防止死锁

如何防止死锁?(重点)

1.减少同步代码块嵌套操作

2.降低锁的使用粒度,不要几个功能共用一把锁

3.尽量采用tryLock(timeout)的方法,可以设置超时时间,这样超时之后,就可以主动退出,防止死锁(关键)

标签:占有,避免,面试,死锁,线程,进程,等待,资源
来源: https://blog.csdn.net/weixin_43961117/article/details/121225167