- 浏览: 230993 次
- 性别:
- 来自: 北京
文章分类
最新评论
悲观锁(Pessimistic Lock):
每次拿数据的时候都会担心会被别人修改(疑心重很悲观),所以每次在拿数据的时候都会上锁。确保自己使用的过程中不会被别人访问,自己使用完后再解锁。
期间需要访问该数据的都会等待。
乐观锁(Optimistic Lock):
每次拿数据的时候都完全不担心会被别人修改(心态好很乐观),所以每次在拿数据的时候都不会上锁。但是在更新数据的时候去判断该期间是否被别人修改过(使用版本号等机制),期间该数据可以随便被其他人读取。
两种锁各有优缺点,不能单纯的定义哪个好于哪个。乐观锁比较适合数据修改比较少,读取比较频繁的场景,即使出现了少量的冲突,这样也省去了大量的锁的开销,故而提高了系统的吞吐量。但是如果经常发生冲突(写数据比较多的情况下),上层应用不不断的retry,这样反而降低了性能,对于这种情况使用悲观锁就更合适。
发表评论
-
Oracle 递归查询
2017-11-30 10:23 1129递归查询基础结构 select … from tablen ... -
Oracle32bit 兼容性
2017-10-26 10:17 1099Oracle10G 32bit 安装在 server08:选择 ... -
Oracle11G密码到期ORA-28002
2017-08-03 09:34 543问题: 系统启动失败, 报错ORA-28002(oracle ... -
wm_concat和listagg用法,合并行数据
2017-06-27 15:48 1366方法一 wn_concat() 函数 1、把以下图中Na ... -
Decode与NVL和NVL2区别
2017-06-27 15:23 730Decode decode(条件,值1,翻译值1,值2,翻 ... -
存储过程
2017-06-27 15:11 496CREATE OR REPLACE PROCEDURE P ... -
在线格式化工具
2017-03-27 20:37 527比较实用的在线工具: http://tool.lu/ -
解决linux 下 oracle 11g 密码过期问题(ORA-28002)
2017-03-27 16:46 988问题形成:oracle11g 密码过期时间是180天: 查看过 ... -
mysql
2017-03-23 13:57 325查看安装路径:select @@basedir as base ... -
sqlite3创建数据库
2016-12-09 17:42 6651.将sqlite3.exe目录添加到环境变量中 2.创建数据 ... -
Sqlite安装
2016-12-09 16:41 572学习:http://www.runoob.com/sqlite ... -
oracle dba与resource角色的区别
2016-08-02 14:25 649拥有dba角色的用户,就是数据库管理员、可以访问和修改所有用户 ... -
Oracle获得当天0点时间
2016-05-10 17:58 2813SELECT To_char(Trunc(SYSDAT ... -
Oracle授权访问视图
2016-04-25 11:46 1408-----用sys账号登录注册新用户---------CREA ... -
oracle删除一条重复数据
2016-04-21 15:20 898查询及删除重复记录 ... -
Oracle Exists 实现 in like 混合使用
2015-12-08 17:23 2103select t.*, t.rowid from sm_u ... -
mysql 递归查询
2015-11-24 10:24 561CREATE TABLE nodelist( ... -
Oracle - 数据库的实例、表空间、用户、表之间关系
2015-11-12 14:31 744完整的Oracle数据库通常由两部分组成:Oracle数据库 ... -
Oracle授予用户权限
2015-11-12 14:23 6321Oracle授予用户权限 需要在Oracle里创建一个用 ... -
dbms_lob 的 instr和substr
2015-11-02 11:55 2178dbms_lob包学习笔记之三:instr和substr存储过 ...
相关推荐
#### 一、悲观锁与乐观锁的概念 悲观锁和乐观锁是计算机科学中用于处理并发控制的两种不同策略,它们主要应用于多线程环境下数据的一致性和完整性保护。两种锁的设计哲学反映了对数据并发访问时的不同预期。 **...
### Hibernate的乐观锁与悲观锁 #### 一、引言 在并发环境下,尤其是在金融、电商等业务场景中,确保数据的一致性和完整性至关重要。**Hibernate**作为一种流行的Java持久层框架,提供了多种机制来处理并发控制...
【描述】:“面试必备之乐观锁与悲观锁.pdf”涉及的是并发控制中的两种重要锁机制——悲观锁和乐观锁,它们是多线程环境下确保数据一致性的重要手段。 【标签】:“求职面试 多线程” 【正文】: 悲观锁和乐观锁...
乐观锁和悲观锁是数据库事务控制...了解和掌握乐观锁与悲观锁的原理和应用场景,对于提升面试者的数据库管理技能和解决并发问题的能力至关重要。在面试中,深入探讨这些话题将有助于展示自己的专业水平和问题解决能力。
乐观锁与悲观锁各有优缺点。悲观锁适合于高并发写操作的场景,可以防止丢失更新,但可能导致死锁问题。乐观锁则适用于写操作较少,且可以接受偶尔的冲突重试的情况,它减少了锁的开销,提升了系统的吞吐量。然而,...
"面试必备之乐观锁与悲观锁" 在多线程编程中,锁机制是必不可少的一部分,锁机制可以防止多个线程同时访问共享资源,避免数据不一致和混乱的情况。锁机制可以分为悲观锁和乐观锁两种,下面我们将详细介绍这两种锁...
面试资源乐观锁与悲观锁
Java 架构面试中,乐观锁与悲观锁是两个重要的并发控制概念,它们在多线程环境下用于确保数据的一致性。理解这两种锁对于开发者来说至关重要,特别是在高并发的系统设计中。 **悲观锁**是一种保守的并发控制策略,...
除了上述的乐观锁和悲观锁实现技巧之外,ThinkPHP框架还提供了其他很多与数据操作和事务管理相关的功能和技巧。例如,在ThinkPHP中,可以使用事务控制相关的类和方法,如mysqli的transaction方法开始事务,commit...
【Hibernate乐观锁与悲观锁详解】 在开发过程中,尤其是在并发环境下,确保数据的一致性和完整性至关重要。Hibernate,作为Java领域广泛使用的ORM框架,提供了一种处理并发数据访问冲突的手段,那就是锁机制。主要...
1. **事务隔离级别**:乐观锁和悲观锁与数据库的事务隔离级别密切相关。例如,读未提交(READ UNCOMMITTED)、读已提交(READ COMMITTED)、可重复读(REPEATABLE READ)和串行化(SERIALIZABLE)这四种隔离级别都会...