乐观锁

在面试过程中,我们经常会被问道乐观锁,悲观锁!这个其实非常简单!

乐观锁∶故名思意十分乐观,它总是认为不会出现问题,无论干什么不去上锁!如果出现了问题,再次更新值测试

悲观锁:故名思意十分悲观,它总是认为总是出现问题,无论干什么都会上锁!再去操作!

我们这里主要讲解乐观锁机制!

当要更新一条记录的时候,希望这条记录没有被别人更新

乐观锁实现方式:

  • 取出记录时,获取当前version
  • 更新时,带上这个version
  • 执行更新时, set version = newVersion where version = oldVersion
  • 如果version不对,就更新失败

乐观锁的原理:就是通过version的值来进行,判断,乐观锁会在动态的通过and拼接到where的判断条件下,在多线程执行的时候,就会通过判断version的值来,进行具体的操作,若当前查询出的version的值与所查询的值不相等,则该操作就不会被执行。

乐观锁的原理:就是通过version的值来进行,判断Preparing: UPDATE user SET name=?, age=?, email=?, version=?, create_time=?, update_time=? WHERE id=? AND version=? 乐观锁:1、先查询,获得版本号version = 1
-- A
update user set name = "wang", version = version + 1
where id = 2 and version = 1--B线程抢先完成,这个时候version = 2,会导致A修改失败!
update user set name = "wang", version = version + 1
where id = 2 and version = 1

测试一下MP的乐观锁插件

乐观锁原理的理解(面试加分项)相关推荐

  1. java乐观锁实现_Java 乐观锁原理与实战演练

    原标题:Java 乐观锁原理与实战演练 一. 前言 最近在做一个简单审批流程的项目,由于只有固定二级审批所以没有工作流组件,然后就遇到一个审批节点捞单时候,多个人同时审批时候如何保证业务正常运行的问题 ...

  2. mysql 消极锁_MySQL支持的事物隔离级别以及消极锁和乐观锁原理和应用场景

    在一样平常开发中,尤其是营业开发,少不了行使 Java 对数据库举行基本的增删改查等数据操作,这也是Java工程师的必备手艺之一.做好数据操作,不仅仅需要对Java语言相关框架的掌握,更需要对种种数据 ...

  3. 锁系列:一、悲观 / 乐观锁原理与运用

    一.乐观锁: 不会对资源加锁,只是更新共享资源时,判断是否允许更新. 1.1 CAS(Compare and Swap)思想: 它包含三个操作数:内存位置(V).预期原值(A)和新值(B). 如果内存 ...

  4. Cas乐观锁的初步理解

    独占锁是一种悲观锁,synchronized就是一种独占锁:它假设最坏的情况,并且只有在确保其它线程不会造成干扰的情况下执行,会导致其它所有需要锁的线程挂起直到持有锁的线程释放锁. 所谓乐观锁就是每次 ...

  5. apollo @value没生效_不问不要紧,一文要人命,绝对的面试加分项配置中心Apollo深度解读...

    往期推荐 阿里面试官问我:到底知不知道什么是Eureka,这次,我没沉默 万字详解Ribbon架构,针对面试高频题多角度细说Ribbon 什么是Hystrix,阿里技术最终面,遗憾的倒在Hystrix ...

  6. 懂点 Nginx 反向代理与负载均衡,是面试加分项没有之一

    点击上方"方志朋",选择"置顶公众号" 技术文章第一时间送达! 学到老活到老 前端圈一直很新,一直要不停的学习,而且在进入大厂的路上,还要求熟悉一门后台语言等等 ...

  7. 乐观锁与悲观锁原理及实现

      本来昨天晚上只是参加了一下宣讲会,然后谁知道宣讲会直接就给卷子面试了···,面试了,当时我是惊呆的.但是,既然都来了,面试就面试吧.虽然没准备,但是这是该挨的虐,没办法.   笔试完之后,总体感觉 ...

  8. 乐观锁、悲观锁、分布式锁的总结

    乐观锁.悲观锁.分布式锁 面试必备-行锁.表锁 - 乐观锁.悲观锁的区别和联系(史上最全)_yxg520s的博客-CSDN博客_行锁和表锁是悲观锁吗 乐观锁.悲观锁.读写锁.互斥锁之间的关系_Leri ...

  9. 悲观锁的实现方式java_并发编程--锁--悲观锁和乐观锁

    悲观锁和乐观锁并不是某个具体的"锁"而是一种并发编程的基本概念,是根据看待并发同步的角度.乐观锁和悲观锁最早出现在数据库的设计当中,后来逐渐被 Java 的并发包所引入. 悲观锁 ...

最新文章

  1. Mac下 Brew 更新缓慢问题解决(配置清华大学开源软件镜像站)
  2. hdu 1003 dp
  3. 润乾V5部署url应用名为空applet无法打印解决方案
  4. python6翻_洗礼灵魂,修炼python(6)--活起来的代码+列表
  5. [C#]关于Distinct与重写IEqualityComparer时得知道的二三事
  6. FIR数字滤波器设计_窗函数法
  7. hdu4091(暴力)
  8. 世界杯直播“三分天下”,视频平台如何实现高清直播?
  9. 翻版“永恒之蓝”入侵手机 信息安全再临大考
  10. R语言基础入门(3)之数据类型与相应运算1
  11. linux安装配置java,Linux 安装配置 java 环境
  12. bci测试如何整改_基于fNIRS技术的脑机接口(BCI)
  13. Pandas 矩阵运算
  14. 自学转行成前端工程师,三面拿下字节跳动offer
  15. 在职工象棋赛上弃子拿下一盘
  16. php获取用户 地区 、ip地址
  17. 机器学习(周志华)知识点总结——第3章 线性模型(后期上传word/PDF)
  18. WPS Office 2020 for Mac(wps2020)3.8.0(6081)中文
  19. icem网格数和节点数_ansys中划分网格后,如何查看单元数和节点数
  20. java 排序sort_Java排序方法sort的使用详解(转)

热门文章

  1. unity小游戏——得分高低的判定
  2. java幂等控制_JAVA幂等性实现
  3. double转换成int java,Java将double转换为int
  4. Zabbix钉钉报警
  5. 什么是Java字节码?
  6. 拨号上网外网使用NETMEETING
  7. html中哪个属性表示块级元素,HTML块级元素与行级元素
  8. 乡村振兴项目最全实施流程
  9. SAE 最佳实践范本:助力视野数科进入云原生“快车道”
  10. php三极管驱动蜂鸣器计算,三极管驱动蜂鸣器这些“陷阱”要小心!