佬们,黑马点评的这个乐观锁搞不懂,求教呀

就是这个,百思不得其解。个人理解它的本质是:1、通过rr默认隔离级别下给当前记录加锁,只允许当前事务update,令多个事务串行处理该记录。2、判断库存数>0,才进行库存扣减。

这跟乐观锁有什么关系呢?这不只是一个条件判断sql吗?如果说认为这是单纯靠库存字段作为乐观锁,那还是可能出现多个事务判断库存>0,并一起扣减,导致超卖,想解决该问题本质还是靠记录锁呀,记录锁不是悲观的吗

不知道我是不是哪里理解错了,大佬们教教我!!😭

全部评论
是的,借助数据库update的行锁是悲观锁,并没有用到版本号之类的机制
1 回复 分享
发布于 今天 11:44 江西
同问
点赞 回复 分享
发布于 今天 11:44 江苏
一般来说update语句是原子性的吧 不会出现多个事务判断库存大于0并且以相同的值扣减吧
点赞 回复 分享
发布于 今天 11:46 江西
stock严格相等的相当于代替了乐观锁里版本version的功能,但这样在高并发的时候成功率会比较低。但其实只要所有下单数不超过总stock就行,所以不必严格等于之前的stock,只要总stock大于0就可以下单。
点赞 回复 分享
发布于 今天 11:58 河南
java层面并没有解决并发安全问题,而mysql是通过mvcc机制保证不会出现并发安全问题。在并发访问同一行数据,会加行锁。
点赞 回复 分享
发布于 今天 15:44 四川

相关推荐

今天 11:29
门头沟学院 C++
女生,武汉人1、瑞声科技,软件开发,南京,已发意向(搜不到相关信息,听面试官说做的方向跟我研究生课题强相关)2、烽火通信,软开,武汉,等开奖(国企,但是网上差评好多)3、四方继保,研发岗,武汉,已谈薪,等开奖(私企,但是福利待遇都挺不错,网上说是入职要出差半年)
7946163461:四方鸡煲,快跑,,,里面管理混乱的一笔,跟你谈的福利根本拿不到全额,,,绩效卡的一笔,你不出差不加班,根本拿不到,出差和加班你也拿不到,,还必须会舔领导,阿谀奉承那种才OK。。。学姐给我的血泪,她已经跑路了,,,烽火你多查查,风评一边倒,,,南京那个风评还可以
投递烽火通信等公司10个岗位 >
点赞 评论 收藏
分享
点赞 评论 收藏
分享
2 15 评论
分享
牛客网
牛客企业服务