加锁的顺序导致的死锁问题
为了防止死锁,我给我的程序按照顺序加锁了。比如oa--as---aa这种顺序。但是由于在获取OA的时候发现数据不存在,所以我就先new,然后加锁。结果就成了new oa----锁oa----new as-----锁as----new aa----锁aa。但是这样下去,会发生死锁,这是什么原因了。(oa和as锁采用的是排它锁,aa采用的是共享锁)
我这边是通过加MySQL行级锁,for update和in share mode这种方式来的,没有锁到同一个变量。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
锁有没有嵌套?是不是锁到同一个变量了?
是不是在第二步就死锁了?