秒杀是高并发、冲突概率高的场景,但乐观锁的 CAS 是数据库原子操作,性能碾压悲观锁,是秒杀系统的标准方案。乐观锁 vs 悲观锁:为什么选乐观锁?特性乐观锁悲观锁加锁时机更新时校验,不提前加锁查询时就加行锁并发性能极高,无锁竞争低,大量线程阻塞适用场景并发高、冲突概率低(秒杀)并发低、冲突概率高代码复杂度简单,一行.gt()搞定需手动加锁、处理死锁乐观锁(CAS)原理:乐观锁 = 不提前加锁,相信数据不会冲突,只在更新时校验条件CAS=Compare And Swap(比较并交换)这里的Compare就是stock 0,Swap就是stock = stock -1数据库会原子性执行这条 SQL:先判断stock 0是否成立成立 → 扣减库存,返回