原文:《面试经典系列》- 乐观锁和悲观锁及其应用场景

乐观锁 乐观锁 OptimisticLocking 是一种思想,相对悲观锁而言,乐观锁认为对同一个数据的并发操作,不会造成冲突,所以在数据提交更新的时候,才会正式对数据进行冲突校验,如果有冲突,则给用户返回错误的信息,让用户决定如何处理。乐观地认为,不加锁的并发操作是没有问题的。 具体是实现思路是,第一次读的时候,获取到某个字段值 版本 时间戳 ,处理完业务逻辑开始更新时,需要再次查看该字段的值 ...

2020-03-13 11:40 0 895 推荐指数:

查看详情

经典问题之乐观悲观及使用场景

悲观 悲观(Pessimistic Lock),顾名思义,就是很悲观,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会block直到 ...

Sat Apr 20 00:32:00 CST 2019 0 1379
悲观乐观的区别和应用场景

1.早上提醒项目提前上线下午两点至三点 2.导出两张模板,生产环境需要导出CSR一张表方便以后查看 3.这问题让我联系很多情景下应用,分布式、JAVA中线程同步、mysql死锁检测机制、缓存等,在关系型数据库里又有行,表,读锁,写锁等,这个问题我觉得理解它是多向 ...

Thu Mar 22 07:13:00 CST 2018 0 2269
面试官:你说说互斥、自旋、读写锁、悲观乐观应用场景

前言 生活中用到的,用途都比较简单粗暴,上锁基本是为了防止外人进来、电动车被偷等等。 但生活中也不是没有 BUG 的,比如加锁的电动车在「广西 - 窃·格瓦拉」面前,就是形同虚设,只要他愿意,他就可以轻轻松松地把你电动车给「顺走」,不然打工怎么会是他这辈子不可能的事情 ...

Wed Sep 16 04:15:00 CST 2020 4 5901
互斥、自旋、读写锁、悲观乐观应用场景

如何用好,是程序员的基本素养之一。 高并发的场景下,如果选对了合适的,则会大大提高系统的性能,否则性能会降低。 所以,知道各种的开销,以及应用场景是很有必要的。 接下来,就谈一谈常见的这几种: 正文 多线程访问共享资源的时候,避免不了资源竞争而导致数据错乱 ...

Thu Sep 30 07:31:00 CST 2021 0 129
MySql悲观乐观区别及使用场景

一、概念上的区别   乐观( Optimistic Locking):顾名思义,对加锁持有一种乐观的态度,即先进行业务操作,不到最后一步不进行加锁,"乐观"的认为加锁一定会成功的,在最后一步更新数据的时候再进行加锁。   悲观(Pessimistic Lock):正如其名字一样,悲观对数 ...

Sun Nov 03 23:10:00 CST 2019 0 1405
悲观乐观使用场景

乐观是在应用层加锁,而悲观是在数据库层加锁(for update) 乐观顾名思义就是在操作时很乐观,这数据只有我在用,我先尽管用,最后发现不行时就回滚。 悲观锁在操作时很悲观,生怕数据被其他人更新掉,我就先将其先锁住,让别人用不了,我操作完成后再释放掉。 悲观需要数据库级别上的的实现 ...

Sun Jan 03 22:11:00 CST 2016 0 6089
 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM