乐观锁和悲观锁

什么是乐观锁?

乐观锁:顾名思义就是十分乐观,它总是认为不会出现问题,无论干什么都【不会去上锁】!如果出现了问题,就再次更新值测试。

更新值测试它会使用一个叫 version字段。

version 分为旧 version 和新 version。也就是 version 和 new version。

每次更新的时候就会携带一个版本号,用来判断版本号是否更新,如果更新了就代表更新成功。

 

乐观锁实现方式:

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

 

 代码解释:

乐观锁:1、先查询,获得版本号 version =1
--    A
update user set name="zhangsan",version =version + 1
where id =2 and version=1

--    B 线程抢先完成,这个时候 version =2 会导致 A 修改失败
update user set name="zhangsan",version =version + 1
where id =2 and version=1

给i所有的记录加一条version。

 

什么是悲观锁?

悲观锁:顾名思义就是十分悲观,它总是认为会出现问题,无论干什么都【会去上锁】!再去操作。

 

posted @   追星月?问酒缘。  阅读(18)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示