翻真实代码找死锁风险,最该警觉的信号是【0】。
真实代码分析模型:把每段代码的加锁顺序记成一个锁名列表。shared_inversion(a, b) 判两段对「共同的锁」顺序是否相反(相反=有死锁风险);risky_pairs(funcs) 数有多少对彼此逆序;safe_all(funcs) 判是否两两都一致。
shared_inversion(a, b)
risky_pairs(funcs)
safe_all(funcs)
全部评论