在多线程环境中更新表

时间:2017-08-09 13:53:45

标签: multithreading asynchronous transactions spring-transactions

我有一张桌子说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。

0 个答案:

没有答案