乐观锁与悲观锁的区别?
创作时间:
作者:
@小白创作中心
乐观锁与悲观锁的区别?
引用
CSDN
1.
https://blog.csdn.net/weixin_53391173/article/details/139212082
首先来看乐观锁。顾名思义,乐观锁就是持比较乐观态度的锁。乐观锁在操作数据时非常乐观,认为别的线程不会同时修改数据,所以不会上锁,但是在更新的时候会判断在此期间别的线程有没有更新过这个数据。
反之,悲观锁就是持悲观态度的锁。悲观锁在操作数据时比较悲观,每次操作数据的时候都认为别的线程也会同时修改数据,所以每次操作数据的时候都会上锁,这样别的线程想拿到这个数据就会阻塞,直到它拿到锁。举个例子,有时候我们上公共厕所的时候要排队,如下图所示。
如果你蹲马桶的时候开着门,外面有人就会排着队看着你。你会这么做吗?当然,如果在自己家里,有可能会这么干,这就是乐观锁。虽然能进到房间,但是有人占着坑位,该排队还是得排队。比如数据库提供的 write_condition 机制,以及JavaAPI并发工具包下面的原子变量类,就是使用了乐观锁的CAS 来实现的。
悲观锁就不同了,就相当于进房间之后,第一件事就是把门锁上,在门外排队等候的人不知道里面发生了什么,又着急但是又只能干等着。比如行锁、表锁、读锁、写锁,都是在操作之前先上锁,JavaAPI中的synchronized 和ReentrantLock 等独占锁都是悲观锁的实现。
根据前面对两种锁的介绍,总结一下两种锁的应用场景。
首先来看乐观锁,它适用于写少读多的情况,也就是说减少操作冲突,这样可以省去锁竞争的开销,提高系统的吞吐量。而悲观锁呢,它适用于写多读少的情况。因为,如果还使用观锁,会经常出现操作冲突,这样会导致应用层不断地重试,反而会降低系统的性能。
热门推荐
砌墙施工注意事项及步骤详解
自上而下的混音:完全新手指南
四大恶人中,为何只有段延庆得善终?你看刀白凤献身那晚说了什么
生物矿化:从骨骼形成到环境修复的神奇过程
明代忠臣于谦:一生清正、坚守节操的历史典范
如何实施有效的数字人运营策略?
以“新”促“质”,江宁区东山街道高质量发展观察
腰椎间盘突出能否自我康复?你需要知道的真相!
最新A股投资者结构全景图深度剖析
探讨箕子与朝鲜民族的关系
冠豸山:自然与人文交融的世外桃源之旅
银行卡被冻结后,有哪些常见的解除冻结方式?
血小板减少症怎么治疗
一次性筷子国潮风向:喜庆实用的竹制选择
你家从古至今属于哪个郡哪个县?两千年最全广东高清历史地图来啦
留学生榜样被拒?公务员选调的变化和未来走向
MySQL主从复制 —— 作用、原理、数据一致性,异步复制、半同步复制、组复制

四川南部县一高三学生自缢死亡,事件分析与反思
一技之长在社会中的作用
实验室废水有效的处理方法
工地半夜扰民怎么办?多种有效投诉举报途径全攻略
提前看原创国漫灵笼第二季,深度揭秘为何值得期待
AI恋爱助手引争议:科技浪潮下的情感满足与虚实边界
鼻炎反复发作,会变成鼻咽癌吗?医生:有4个迹象千万别当成鼻炎
银行白银期货投资的交易策略分析
2024最新甜宠现言小说盘点:高甜剧情与人物塑造的深度解析
和田玉的鉴别方法(和田玉的玉镯的鉴别方法)
领略“小联合国”风采,解锁对外经贸MBA项目的特色与优势
经络运行原理及研究进展
周文强:从辍学少年到财商教育领军人物的逆袭之路