程序员过关斩将——数据库的乐观锁和悲观锁并非真实的锁( 九 )
悲观锁
每次获取数据的时候 , 都会担心数据被修改 , 所以每次获取数据的时候都会进行加锁 , 确保在自己使用的过程中数据不会被别人修改 , 使用完成后进行数据解锁 。 由于数据进行加锁 , 期间对该数据进行读写的其他线程都会进行等待 。
总结
无论是乐观锁和悲观锁 , 并非是数据库自身持有的锁类型(虽然悲观锁形式上很像独占锁) , 而是程序设计的一种思想 , 是一种类似数据库锁机制保护数据一致性的策略 。
1. 悲观锁比较适合写入操作比较频繁的场景 , 如果出现大量的读取操作 , 每次读取的时候都会进行加锁 , 这样会增加大量的锁的开销 , 降低了系统的吞吐量 。
2. 乐观锁比较适合读取操作比较频繁的场景 , 如果出现大量的写入操作 , 数据发生冲突的可能性就会增大 , 为了保证数据的一致性 , 应用层需要不断的重新获取数据 , 这样会增加大量的查询操作 , 降低了系统的吞吐量 。
推荐阅读
- 网游|颠覆你认知的网游土豪,程序员加班为他改游戏,还送专属服务器
- 网易|永劫无间诡异宕机事件:网易机房过热,程序员竟然祭出了干冰?
- 坦克大战|FC游戏埋藏了三十年的秘密,《坦克大战》隐藏着一封程序员的血书
- 梦幻西游|梦幻西游:程序员修复显示BUG用力过猛,现在武器亮的有点晃眼
- 塞尔达传说|Switch下载超200万,程序员才3人,这游戏真能比塞尔达还好玩?
- 神武4|《神武4》手游之宠物爆料:忠义仁勇神兽\牛云长\助你过关斩将
- 程序员|公司新招程序员,入职2天看了下电脑配置,2天后果断辞职
- 程序员|程序员内推10人进公司拿了10万内推费,年底领导:你转行做HR吧,结果愣了
- 程序员|程序员没转发公司内容被扣500,结果辞职半个月之后,领导懵了
- 红米手机|操作太骚!美国程序员把活外包给中国人,不用干活白拿140万工资