乐观锁

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

慕娘7010603

2020-03-11

乐观锁在程序里实现逻辑,可是操作数据库的时候执行update,不也是会默认加上排它锁吗,这不是悲观锁的实现吗?那乐观锁的意义在哪里

写回答

1回答

翔仔

2020-03-12

因为在程序里,多线程执行的情况下,从数据库取出的数据之后,再写回去前,同样的数据可能已经被另外的线程修改了,所以此时会用版本号来做控制,尽管你底层是用的锁,但是这个锁对应用本身是透明的,并且也没办法去管理应用之间的线程执行顺序,所以在程序层面加上乐观锁比在数据库里控制来得实在

0
2
翔仔
回复
YogurtJ
同学好,如果只是通过数据库来执行,肯定不会有这样的问题,但是你是需要把数据取出到程序,在程序里进行计算之后,再写回数据库,此时程序这边就不会受到数据库锁的制约了,会出现混乱,所以根据先来先得的原则,使用版本号来控制
2020-03-14
共2条回复

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

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

8442 学习 · 1872 问题

查看课程