乐观锁
来源:互联网 发布:数据结构算法题怎么弄 编辑:程序博客网 时间:2024/04/29 19:15
乐观锁 :
大多数是基于数据版本(version)的记录机制实现的。何谓数据版本?即为数据增
加一个版本标识,在基于数据库表的版本解决方案中,一般是通过为数据库表添加一个“version”字段来实现读取出数据时,将此版本号一同读出,之后更新时,对此版本号加 1。
此时,将提交数据的版本号与数据库表对应记录的当前版本号进行比对,如果提交的数据版本号大于数据库表当前版本号,则予以更新,否则认为是过期数据。
=====================================================================
乐观锁实例:假设数据库中帐户信息表中有一个 version 字段,当前值为 1;而当前帐户余
额字段(balance)为$100。下面我们将用时序表的方式来为大家演示乐观锁的实现原理:
操作员 A 操作员 B
(1)、操作员 A 此时将用户信息读出(此时
version=1),并准备从其帐户余额中扣除$50
($100-$50)
(2)、在操作员 A 操作的过程中,操作员 B 也读入此
用户信息(此时 version=1),并准备从其帐户余额
中扣除$20($100-$20)
(3)、操作员 A 完成了修改工作,将数据版
本号加 1(此时 version=2),连同帐户扣除
后余额(balance=$50),提交至数据库更
新,此时由于提交数据版本大于数据库记录
当前版本,数据被更新,数据库记录 version
更新为 2
(4)、操作员 B 完成了操作,也将版本号加 1
( version=2 ) 并 试 图 向 数 据 库 提 交 数 据
(balance=$80),但此时比对数据库记录版本时发
现,操作员 B 提交的数据版本号为 2,数据库记录
当前版本也为 2,不满足“提交版本必须大于记录
当前版本才能执行更新”的乐观锁策略,因此,操
作员 B 的提交被驳回
==============================================================================================
- 乐观锁
- 乐观锁
- 乐观锁
- 乐观锁
- 乐观锁
- 乐观锁
- 乐观锁
- 乐观锁
- 乐观锁
- 乐观锁
- 乐观锁
- 乐观锁以及乐观锁的实现
- 乐观锁以及乐观锁的实现
- 乐观锁以及乐观锁的实现
- 乐观的人用乐观锁?
- 悲观锁乐观锁
- 乐观锁,悲观锁
- 悲观锁 乐观锁
- Java8-Optional-No.02
- springcloud实战之6 服务消费者(Feign)
- 【Android】SDK和API Level版本的对应关系
- MySQL 传统复制中常见故障处理和结构优化案例分析
- 用Python进行主播次日留存、留存粉丝周及月充值的计算示例
- 乐观锁
- 如何快速转载CSDN中的博客
- 开通附近小程序,覆盖小程序附近5公里范围客户
- Dubbo学习总结(5)——Dubbo服务架构及服务治理过程演进
- 开发人员必知的5种开源协议(BSD,Apache,GPL,LGPL,MIT)
- apache安装
- PostgreSQL之INDEX 索引
- redhat6.8安装redis-4.0.6(无网络安装)
- linux磁盘查看命令