乐观锁与悲观锁的区别?
创作时间:
作者:
@小白创作中心
乐观锁与悲观锁的区别?
引用
CSDN
1.
https://blog.csdn.net/weixin_53391173/article/details/139212082
首先来看乐观锁。顾名思义,乐观锁就是持比较乐观态度的锁。乐观锁在操作数据时非常乐观,认为别的线程不会同时修改数据,所以不会上锁,但是在更新的时候会判断在此期间别的线程有没有更新过这个数据。
反之,悲观锁就是持悲观态度的锁。悲观锁在操作数据时比较悲观,每次操作数据的时候都认为别的线程也会同时修改数据,所以每次操作数据的时候都会上锁,这样别的线程想拿到这个数据就会阻塞,直到它拿到锁。举个例子,有时候我们上公共厕所的时候要排队,如下图所示。
如果你蹲马桶的时候开着门,外面有人就会排着队看着你。你会这么做吗?当然,如果在自己家里,有可能会这么干,这就是乐观锁。虽然能进到房间,但是有人占着坑位,该排队还是得排队。比如数据库提供的 write_condition 机制,以及JavaAPI并发工具包下面的原子变量类,就是使用了乐观锁的CAS 来实现的。
悲观锁就不同了,就相当于进房间之后,第一件事就是把门锁上,在门外排队等候的人不知道里面发生了什么,又着急但是又只能干等着。比如行锁、表锁、读锁、写锁,都是在操作之前先上锁,JavaAPI中的synchronized 和ReentrantLock 等独占锁都是悲观锁的实现。
根据前面对两种锁的介绍,总结一下两种锁的应用场景。
首先来看乐观锁,它适用于写少读多的情况,也就是说减少操作冲突,这样可以省去锁竞争的开销,提高系统的吞吐量。而悲观锁呢,它适用于写多读少的情况。因为,如果还使用观锁,会经常出现操作冲突,这样会导致应用层不断地重试,反而会降低系统的性能。
热门推荐
椰子油的作用和功效
苏轼《苦笋》赏析:由物及人,论人才养成之道
23个承认伪满洲国的国家中,为何苏联比较特殊?其他国家主要跟日德混
如何轻松打开电脑麦克风权限设置
鸡精的正确使用方法
2024年四川高考专科批调档线(含文科+理科分数汇总)
7部高分经典悬疑反转电影推荐
头像女生高冷霸气,头像女生动漫可爱
240Hz触控采样率够用吗?深度解析其优势与必要性
50-60岁人群的血压标准范围及维持方法
活珠子卫生检测哪些项?活珠子卫生检测多少钱?
货运司机:法律风险与合规管理探析
AI炒股:自动画出A股股票的K线图并添加技术指标
儿童先天性白内障手术费用详解
新加坡华语:多元文化背景下的独特语言变体
MOQ在采购过程中对企业的成本控制有哪些影响?
使用降压药物的原则是什么
尊巴,热辣舞步击退负能量
江苏省苏州中学实施"登峰计划",升级研学体系,打造初高一体、大中贯通培养新模式
遭遇医疗事故怎么办?申诉流程、取证要点及纠纷解决指南
心学问心理教育,心灵的疗愈师:教会孩子自我关怀,培养积极心态
大理洱海生态廊道:骑行与白族蜡染的文化之旅
心理学家:人际交往的距离意识
学动画制作需要什么基础?从零开始的入门指南
VPC对等连接的工作原理与限制条件详解
90年代的经典代表作歌曲,快看看你都听过吗?
正畸小常识:正畸面角指的是什么?口腔正畸高角低角怎么分?详解定义及区分方法!
着凉引起的腹泻怎么办
一种比抑郁症还难控制的病,却经常被误诊
阅读舞台,探索知识的深度与广度