求教老师:乐观锁的实现,记录版本号。
来源:3-12 锁模块之MyISAM与InooDB关于锁方面的区别_2

菜鸟精髓
2019-01-02
有个问题,步骤1中去读Version值为0,在并发的时候,读取version,可能读取到其他session改的值,然后又对id=2的记录修改掉了,这种乐观锁怎么控制呢?
写回答
1回答
-
同学好,乐观锁一般是在最终提交的时候再进行检查,它也没办法判定哪个线程是对的,对错只是针对业务而言。因此这里,如果一个线程最先获取到原来的版本并且更新成功,变成另一个version了,别的线程再拿原先的version或者别不是最新的version进行更新就会失败,此时只能再次尝试获取version直到version匹配为止
112019-01-03