为啥在数据库队列中也会发生数据库脏写?

最后一条的金额,很明显是错了。

我这里的图片,是有做一下悲观锁的,但我刚开始是没有。也就是说出错的时候是没有用lockForUpdate
因为记录是在队列里面一条一条执行的,我觉得是可以不需要使用锁的,加了我反而才觉得多余
你们怎么理解这一现像
,加上你这里还有一个外部的网络IO,此时我再一个队列进来,读取的余额当然是一样的,而且你这个锁,如果数据库层面没有设置字段不能为负数,会出现并发扣款余额为负数的情况。再多说一句,这根本不叫脏写。
关于 LearnKu
推荐文章: