预防死锁的方法
红缘醉
精选回答
1、避免一个线程同时获取多个锁。
2、避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源。
3、尝试使用定时锁,使用Lock.tryLock(timeout)来替代使用内部锁机制。
4、对于数据库锁,加锁和解锁须在一个数据库连接里,否则会出现解锁失败的情况。
产生死锁的原因主要是:
1、因为系统资源不足。
2、进程运行推进的顺序不合适。
3、资源分配不当等。
如果系统资源充足,进程的资源请求都能够得到满足,死锁出现的可能性就很低,否则就会因争夺有限的资源而陷入死锁。其次,进程运行推进顺序与速度不同,也可能产生死锁。产生死锁的四个必要条件:
1、互斥条件:一个资源每次只能被一个进程使用。
2、请求与保持条件:一个进程因请求资源而阻塞时,对已获得的资源保持不放。
3、不剥夺条件:进程已获得的资源,在末使用完之前,不能强行剥夺。
4、循环等待条件:若干进程之间形成一种头尾相接的循环等待资源关系。
这四个条件是死锁的必要条件,只要系统发生死锁,这些条件必然成立,而只要上述条件之一不满足,就不会发生死锁。
要想成功必须强大 2023-11-01 14:31:53
相关推荐
新年烧香祈福说说
1、阿弥陀佛,人生在世不容易,求佛菩萨保佑我全家人苦难不近身,平安健康永相随,一切万事顺心如意。2、愿你我生生世世长相逢,同行同愿同圆种智功德海。3、阿弥陀佛,祝福所有亲人朋友,健健康康、平平安安。4、求佛保佑...
展开详情新年感言一句话
1、祝愿新的一年身边的家人朋友都开开心心、健健健康、好运连连!2、我的祝福,如春天般的温柔甜蜜,长久深深种植地保留在您的心田,祝妈妈您拥有甜蜜温馨快乐的一年!3、亲爱的自己,永远不要为难自己,比如不吃饭、哭泣、...
展开详情手上有倒刺应该怎么解决
1、温水泡手有人说起了倒刺的时候我不用手直接撕,用剪刀剪去不就行了么?不是的哈,正确的处理方法是打一盆四十度左右的水,然后把手浸泡进去,这样浸泡五分钟之后,手指甲以及手上的倒刺,还有手指头周围的皮肤都变的非常柔...
展开详情火龙果水果保鲜的方法
1、在室内要尽量将火龙果放置在阴凉并且没有光的地方,一般情况下只能存放一天。2、火龙果在切开后有剩余,可用保鲜膜或袋子包起来,放在冰箱中冷藏。3、火龙果属于热带水果,因此在冰箱冷藏时,要将温度调为十五度,此方法...
展开详情