【发布时间】:2018-04-25 19:24:48
【问题描述】:
假设我有 3 个线程,来自应用程序的 T1、T2 和 T3 都在完全相同的时间开始。它们都从某个表、行和列中读取相同的值。假设这个值为 50。
1. T1 快。在 100 毫秒内完成。完成后,它将读取的值更新为 +5。因此,它在数据库中写入 55。
2. T2 有点慢。在 700 毫秒内完成。完成后,它会在读取的值上增加 +10。所以它用 60 更新数据。
3. T3 更慢,在 1300 毫秒内完成。完成后,此线程会增加 +15。所以它的值变成65。
我希望从 SO 中学到的解决方案是在这种情况下如何处理数据一致性。因为,显然在 T3 结束时,该值应该是 80(50 + 5 T1 + 10 T2 + 15 T3)而不是 65。
如果需要,请告诉我是否可以让我的问题更清楚。
【问题讨论】:
标签: concurrency transactions acid