预防死锁 可以采用一次性请求所有资源来预防死锁( 四 )


死锁检测和解除 。
先检测:这种方法并不须事先采取任何限制性措施,也不必检查系统是否已经进入不安全区,此方法允许系统在运行过程中发生死锁 。但可通过系统所设置的检测机构,及时地检测出死锁的发生,并精确地确定与死锁有关的进程和资源 。检测方法包括定时检测、效率低时检测、进程等待时检测等 。
然后解除死锁:采取适当措施,从系统中将已发生的死锁清除掉 。
这是与检测死锁相配套的一种措施 。当检测到系统中已发生死锁时,须将进程从死锁状态中解脱出来 。常用的实施方法是撤销或挂起一些进程,以便回收一些资源,再将这些资源分配给已处于阻塞状态的进程,使之转为就绪状态,以继续运行 。死锁的检测和解除措施,有可能使系统获得较好的资源利用率和吞吐量,但在实现上难度也较大 。
参考资料:死锁百度百科
预防死锁的方法1、避免一个线程同时获取多个锁 。
2、避免一个线程在锁内同时占用多个资源,尽量保证每个锁只占用一个资源 。
3、尝试使用定时锁,使用Lock.tryLock(timeout)来替代使用内部锁机制 。
4、对于数据库锁,加锁和解锁须在一个数据库连接里,否则会出现解锁失败的情况 。
【预防死锁 可以采用一次性请求所有资源来预防死锁】关于预防死锁和可以采用一次性请求所有资源来预防死锁的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。