如何使用java和mysql解决线程问题?

如何使用java和mysql解决线程问题?,java,mysql,multithreading,concurrency,Java,Mysql,Multithreading,Concurrency,我正在从事一个有遗留Java代码的项目。它使用mysql,并且该项目在锁定mysql资源和线程可见性问题方面没有线程策略。不同的人贡献了代码库,每个人都锁定了他们想要的资源,现在我们扩展了很多,现在我们遇到了各种各样的问题(死锁、线程可见性问题) 我的管理层不打算至少在不久的将来重写代码库。我正在尽可能地解决这些问题。查看日志、复制确切的问题并修复它们是一件痛苦的事情 有没有更好的方法来解决线程问题?我不能使用开源工具,如findbug或任何其他并发工具,因为我们使用表级锁定 我的解决方案是记录

我正在从事一个有遗留Java代码的项目。它使用mysql,并且该项目在锁定mysql资源和线程可见性问题方面没有线程策略。不同的人贡献了代码库,每个人都锁定了他们想要的资源,现在我们扩展了很多,现在我们遇到了各种各样的问题(死锁、线程可见性问题)

我的管理层不打算至少在不久的将来重写代码库。我正在尽可能地解决这些问题。查看日志、复制确切的问题并修复它们是一件痛苦的事情

有没有更好的方法来解决线程问题?我不能使用开源工具,如findbug或任何其他并发工具,因为我们使用表级锁定


我的解决方案是记录每个类所做的所有查询,并将流重写为等效的java类,然后使用开源工具/手动调查来解决问题。我不知道这是否是处理这个问题的更好办法

你能举一个当前问题的例子吗?如果这听起来要求很高,很抱歉,但是添加代码可以帮助我们理解真正的问题。如果您还没有,我会使用并发数据源。请参阅:concurrent datasource将如何帮助我?@LuiggiMendoza我无法发布代码,但例如,在更新那里的值之前,代码不会锁定表,我们使用可重复读取。其他线程可能会看到过时的数据,并且由于过时的数据而失败。这样看来,我们可能有很多潜在的问题,我需要一种方法来自动找出问题,比如说至少50%的问题不需要手动代码演练。我不认为锁定整个表可以解决您的问题(事实上,在更改时,您会注意到性能问题)。我真的想问你是否能提供一个真正的问题,而不是仅仅告诉我们去猜测你的问题是什么。