悲观锁和乐观锁

我最近在开发项目时,遇到一个场景,我完成商品的售卖后需要减掉数据库对应的值。
像这种业务场景可能会很危险,因为电商平台更新商品库存的并发量高,并发更新可能会导致数据不一致的问题,例如:丢失修改,不可重复读,读“脏”数据。

可以上锁来解决上面业务场景面临的问题。
悲观锁
假设并发访问情况下,数据很有可能被其他事务修改,因此在访问数据时,直接锁住数据,防止其他事务对其进行修改。

悲观锁也会面临一个问题,因为锁数据的特性,可能会引发死锁。


死锁

乐观锁
相对而言乐观锁就显得温柔许多,它类似于公共卫生间收拾卫生的阿姨,在访问卫生间的时候,不会直接进去收拾卫生。而是会敲门判断里面是否有人,如果没人阿姨会进去收拾,但有人的话阿姨会回滚事务,并尝试重新进去收拾卫生。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容