请给出预防死锁和检测死锁的方法。若检测发生死锁,应如何解除死锁?

题目

请给出预防死锁和检测死锁的方法。若检测发生死锁,应如何解除死锁?


相似考题
参考答案和解析
正确答案:预防死锁通常有以下两种方法: ①一次封锁法。就是要求每个事务必须一次将所有要使用的数据全部加锁。否则该事务不能继续执行; ②顺序封锁法是预先对数据对象规定一个封锁顺序。所有事务都按这个顺序实行封锁。检测死锁发生的一种方法是选择一个处理死锁代价最小的事务将其撤销释放此事务持有的所有锁使其他事务得以继续运行下去。
预防死锁通常有以下两种方法: ①一次封锁法。就是要求每个事务必须一次将所有要使用的数据全部加锁。否则该事务不能继续执行; ②顺序封锁法,是预先对数据对象规定一个封锁顺序。所有事务都按这个顺序实行封锁。检测死锁发生的一种方法是选择一个处理死锁代价最小的事务,将其撤销,释放此事务持有的所有锁,使其他事务得以继续运行下去。 解析:在IN子查询中,内层查询只处理一次,得到一个结果集,再依次处理外层查询。 解除死锁问题有两类方法:一类方法是采用一定措施来预防死锁的发生;另一类方法是允许发生死锁。然后采用一定手段定期诊断系统中有无死锁,若有则解除之。