这种实现方式和第一种差不多,同样是在需要乐观锁控制的table中增加一个字段,名称无所谓,字段类型使用时间戳(timestamp), 和上面的version类似,也是在更新提交的时候检查当前数据库中数据的时间戳和自己更新前取到的时间戳进行对比,如果一致则OK,否则就是版本冲突。 CAS算法 CAS即Compare And Swap(比较与交换),是一...
乐观锁: 会有一个版本号,每次操作数据会对版本号+1,再提交回数据时,会去校验是否比之前的版本大1 ,如果大1 ,则进行操作成功,这套机制的核心逻辑在于,如果在操作过程中,版本号只比原来大1 ,那么就意味着操作过程中没有人对他进行过修改,他的操作就是安全的,如果不大1,则数据被修改过,当然乐观锁还有一些变...
5. 库存超卖 问题分析 有关超卖问题分析:在我们原有代码中是这么写的 if(voucher.getStock()<1){// 库存不足returnResult.fail("库存不足!");}//5,扣减库存booleansuccess=seckillVoucherService.update().setSql("stock= stock -1").eq("voucher_id",voucherId).update();if(!success){//扣减库存re...