开发者社区> 问答> 正文

MDL 锁的实现中检测过程的步骤是什么?

MDL 锁的实现中检测过程的步骤是什么?

展开
收起
xi哈啥哈 2022-04-30 09:20:32 419 0
来自:阿里技术
1 条回答
写回答
取消 提交回答
  • 死锁检测的思路是,首先广度优先,从当前线程等待的锁出发,遍历 MDL_lock 的等待队列和授予队列,看看是否有非当前线程获取的、与等待的锁不兼容的锁存在,如果这个持有线程与算法遍历的起点线程相同,那么锁等待链存在死锁;其次深度优先,从不兼容的锁的持有或等待线程出发,如果该线程也处于等待状态,那么递归重复前述过程,直到找到等待起点线程,否则判断不存在死锁。

    2022-05-08 11:18:04
    赞同 展开评论 打赏
问答地址:
来源圈子
更多
收录在圈子:
+ 订阅
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载