采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师您好. 在讲乐观锁的时候,您说 “乐观锁并不会使用数据库提供的锁机制” 您的意思是不会去手动的获取数据库提供的锁吧,在执行update语句时数据库就会默认使用排它锁吧,只是这个排它锁会在执行完语句后自动解锁. 如果不自动使用排它锁的话,整个乐观锁都会有问题吧,比如两个session同时修改一条语句判断表中的version都是0,然后同时进行修改,修改后version变为1. 我的理解是正确的吗?老师指点.
同学好,视频里表达的意思是乐观锁机制不在mysql中实现,而是放到了程序里面,由程序进行事务的控制,比如spring,然后按照版本号去控制。底层执行update的时候虽然也涉及到数据库的锁,但是乐观锁是上层实现的
非常感谢!
但是乐观锁的实现,也是要依赖着执行update时加的锁吧,不然并发情况下同时判断了version为0,并且同时执行了version+1. 加锁后两个线程不能同时执行,保证了多线程执行下的原子性. 是怎样吗,这些都是我yy的.
同学好,其实可以不判断,同时取出version为0,执行成功后,总有一方先把version置为了1并提交,另外一方则肯定失败,因为此时version不为0了
登录后可查看更多问答,登录/注册
招聘季即将到来,让百度资深面试官来为你的高薪Offer保驾护航
1.7k 27
2.7k 22
1.2k 15
1.4k 14
1.3k 14