求教老师:乐观锁的实现,记录版本号。

来源:3-12 锁模块之MyISAM与InooDB关于锁方面的区别_2

菜鸟精髓

2019-01-02

图片描述有个问题,步骤1中去读Version值为0,在并发的时候,读取version,可能读取到其他session改的值,然后又对id=2的记录修改掉了,这种乐观锁怎么控制呢?

写回答

1回答

翔仔

2019-01-03

同学好,乐观锁一般是在最终提交的时候再进行检查,它也没办法判定哪个线程是对的,对错只是针对业务而言。因此这里,如果一个线程最先获取到原来的版本并且更新成功,变成另一个version了,别的线程再拿原先的version或者别不是最新的version进行更新就会失败,此时只能再次尝试获取version直到version匹配为止

1
1
菜鸟精髓
非常感谢!
2019-01-03
共1条回复

剑指Java面试-Offer直通车 百度资深面试官授课

招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航

8442 学习 · 1872 问题

查看课程