乐观锁和悲观锁
什么是乐观锁?
乐观锁:顾名思义就是十分乐观,它总是认为不会出现问题,无论干什么都【不会去上锁】!如果出现了问题,就再次更新值测试。
更新值测试它会使用一个叫 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。
什么是悲观锁?
悲观锁:顾名思义就是十分悲观,它总是认为会出现问题,无论干什么都【会去上锁】!再去操作。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人