为了账号安全,请及时绑定邮箱和手机立即绑定

为何Java不能像数据库那样从死锁中恢复?

为何Java不能像数据库那样从死锁中恢复?

皈依舞 2018-07-21 12:28:32
问题 JVM可否做到和数据库事务处理一样,对死锁进行处理?如果不可以,那么想知道原因是什么?抛砖引玉:《Java并发编程实战》中描述顺序死锁现象,提到哲学家进餐问题,数据库事务在顺序死锁发生时会选择一个牺牲者释放资源并可以重新执行,此时事务可正常完成。由此想到,JVM可否在死锁发生时,找到牺牲者释放资源?如果在JVM层面能够完成死锁避免,多线程编程是否会简单很多?重申一下,问题是JVM可否做到和数据库事务处理一样,对死锁进行处理?如果不可以,那么想知道原因是什么?
查看完整描述

2 回答

?
慕田峪9158850

TA贡献1794条经验 获得超7个赞

死锁避免最多是lock()方法在将会导致死锁时抛出一个exception。这使多线程编程更复杂了吧?想象每个lock()方法都有可能exception的情况。。所以PLSQL也挺难写的,PLSQL就是会遇到这种死锁导致的exception,然后总是要想办法处理。

查看完整回答
反对 回复 2018-07-24
  • 2 回答
  • 0 关注
  • 730 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信