我正在开发一个具有遗留 Java 代码的项目。它使用 mysql,并且该项目在锁定 mysql 资源和线程可见性问题方面没有线程策略。不同的人为代码库做出了贡献,每个人都按照自己的意愿锁定了资源,现在我们扩展了很多,现在我们遇到了各种各样的问题(死锁、线程可见性问题)。
我的管理层不打算至少在不久的将来重写代码库。我正在尽我所能解决这些问题。浏览日志并复制确切的问题并修复它们是很痛苦的。
有没有更好的方法来解决线程问题?我不能使用像 findbug 这样的开源工具或任何其他并发工具,因为我们使用表级锁定。
我的解决方案是记录每个类所做的所有查询,并将流程重写为等效的 java 类,并使用开源工具/手动调查来找出问题所在。我不知道它是否是处理问题的更好方法。