SpringBoot+JPA项目中,当遇到线程死锁放弃本次操作继续执行下一操作,而不是让整个程序崩溃掉。
有什么可以实现的方法吗?

SpringBoot+JPA死锁问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
2条回答 默认 最新
- 小达哥的垃圾桶 2019-08-14 09:33关注
一个可行的做法是释放所有锁,回退,并且等待一段随机的时间后重试。这个和简单的加锁超时类似,不一样的是只有死锁已经发生了才回退,而不会是因为加锁的请求超时了。虽然有回退和等待,但是如果有大量的线程竞争同一批锁,它们还是会重复地死锁(编者注:原因同超时类似,不能从根本上减轻竞争)。 一个更好的方案是给这些线程设置优先级,让一个(或几个)线程回退,剩下的线程就像没发生死锁一样继续保持着它们需要的锁。如果赋予这些线程的优先级是固定不变的,同一批线程总是会拥有更高的优先级。为避免这个问题,可以在死锁发生的时候设置随机的优先级。
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 设置mac系统只能访问指定网站
- ¥15 西门子博途 s7 1200控制三台步进电机
- ¥15 基于非参数的方向距离函数求污染物影子价格(有偿)
- ¥15 vue+element 生成table
- ¥15 实验 4 FIFO 算法和 LRU 算法-C 程序实现
- ¥30 电脑画面同步投屏,通过同wifi的方式投屏方法,接收投屏端不需要安装第三方软件,
- ¥15 有偿拼接大疆精灵4RGB影像
- ¥15 Arduino实现音频混响
- ¥15 cuda.jit加速报错
- ¥15 Octave 安装工具箱出错 Only Win32 target is supported!