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