返回
当前 - 选择题 - 数据库事务与并发控制
中等
题号:0120241100006
单选题
2024年11月第6题

两个事务竞争资源出现死锁后,通过(其中一个事务回滚)可以解决死锁问题。

问题(1)
浓缩知识点

死锁是多个事务互相持有对方所需资源且不释放,形成循环等待的状态。针对已发生的死锁,核心解决思路是打破循环等待,最常用的手段是强制回滚部分事务,释放其占用的资源,通常会选择回滚代价较低的事务,比如执行时长较短、数据修改量少的,以此降低系统损耗。事务超时重试仅能在一定程度上缓解死锁,无法彻底消除;提高事务优先级则无法破解循环等待的核心矛盾,不能真正解决死锁。此外,我们可以通过提前预防来规避死锁,比如要求所有事务按照相同顺序申请资源,或让事务一次性申请全部所需资源,从根源上避免循环等待的形成。

正确答案
B

本题考察的是数据库死锁的处理方法
提高事务优先级:提高优先级并不能解决死锁,因为即使优先级高,事务仍然需要等待被占用的资源。死锁问题在于循环等待,而不是调度顺序;其中一个事务回滚:强制回滚某个事务,释放其持有的资源,使其他事务得以继续执行,这是常用的死锁解决办法;事务超时立即重试:超时重试可能在一定情况下缓解死锁,但不能保证解决死锁,并且会增加系统开销;所有事物按照相同的顺序申请资源:这是预防死锁的策略,可以避免死锁的发生,但题干问的是“已经发生死锁后”的解决办法。
本小问答案是 其中一个事务回滚。强制回滚某个事务,释放其持有的资源,使其他事务得以继续执行,这是常用的死锁解决办法。
因此,选项 B 正确。

联系我们
隐私协议
用户协议
微信公众号
知乎
小红书
浙ICP备2021029036号
@2022-2026
嘉兴市安芯网络科技有限公司 版权所有