乐观锁、悲观锁、共享锁和排它锁的简单理解
来源:互联网 发布:部落冲突三王升级数据 编辑:程序博客网 时间:2024/05/16 14:17
个人简单理解
乐观锁(乐观并发控制)和悲观锁(悲观并发控制)是指数据库在对待并发上控制的两种思想,共享锁和悲观锁是具体的锁的实现,且都属于悲观锁。乐观锁没有加锁
1.共享锁(S)(读锁):一旦事务给数据或记录加上了共享锁(S),则只能读数据不能写数据,其他事务也只能加共享锁(S)知道上一个事务释放了锁
2.排它锁(X)(写锁):一旦被上上排它锁(X),该事务可进行读写操作,其他事务只能等到该事务释放了锁后才能获取锁
这两种锁都是在进行数据操作是先获取锁,因此都是悲观锁的范畴
乐观锁:获取数据的时候不用获取锁,直到需要更新数据的时候才去检查获取的记录是否已被其他事务更新,如果更新了则返回错误抛异常。注意的是,乐观锁中没有锁机制,通常的实现方式是用版本号或时间戳实现,比如,事务get了一条记录,同时获取到了该条记录的version,如果需要做更新操作,则对version进行+1操作,插入数据库时就会检查数据库当前的version+1是否与插入的version一致,如果一致则插入,否则抛异常,另只有更新操作才对version做+1操作,get不会做
悲观锁:获取数据之前先获取锁,再进行操作
具体的专业术语或名词解释可自行搜索,这里只是我个人比较通俗的解释。
参考文章:http://www.cnblogs.com/hadoop-dev/p/7065702.html
阅读全文
0 0
- 乐观锁、悲观锁、共享锁和排它锁的简单理解
- 乐观锁、悲观锁、共享锁、排它锁
- 对mysql乐观锁、悲观锁、共享锁、排它锁、行锁、表锁概念的理解
- 排它锁,共享锁,乐观锁,排它锁
- 悲观锁和乐观锁的理解
- 深入理解乐观锁和悲观锁
- 深入理解悲观锁和乐观锁
- 悲观和乐观锁
- 数据库的乐观锁和悲观锁的理解
- 数据库乐观锁和悲观锁的一些理解
- 数据库中乐观锁和悲观锁的理解
- 数据库中乐观锁和悲观锁的理解
- 锁、乐观锁和悲观锁的简单介绍
- 一分钟理解乐观锁和悲观锁,附深入理解乐观锁与悲观锁
- MySQL 悲观锁和乐观锁和共享锁
- Oracle的悲观锁和乐观锁
- 悲观锁和乐观锁的实现
- Oracle的悲观锁和乐观锁
- 欢迎使用CSDN-markdown编辑器
- mysql str_to_date字符串转换为日期
- Label适应文字大小
- dlib 08 dlib自带demo 基于ResNet34的imagenet图像分类
- spring的@Transactional注解详细用法
- 乐观锁、悲观锁、共享锁和排它锁的简单理解
- iOS Swift Crash的捕获
- 关于xib的连线
- npm install --save 与 npm install --save-dev 的区别
- iPhone X 适配
- 基于TensorFlow的车牌号识别系统
- <linux线程>同步互斥机制之【互斥锁】
- React Native 自定义modal
- JAVA 常见的异常