我有一张桌子说CREDIT_POINTS。它有以下列。
Copmany Credit points Amount
A 100 50
B 200 94
C 250 80
有多个线程会更新此表。有一种方法可以读取信用点并进行一些计算并更新金额以及信用点。这个计算需要一段时间。
假设线程A读取并且正在进行一些计算。在A回写之前,线程B正在从表中读取数据以进行计算和更新数据。在这里,我正在丢失线程A更新的数据。在许多情况下,当多个线程正在读取和更新表时,信用点和金额将不会同步。
我们可以做的一件事是使用同步方法。 我正在考虑使用spring transaction。 Spring事务线程安全吗?还有什么比这更好的选择? 非常感谢任何帮助。
注意:我正在使用ibatis(ORM)和MySQL。