更新时间:2022-11-02 10:00:29 来源:极悦 浏览507次
乐观锁∶故名思意十分乐观,它总是认为不会出现问题,无论干什么不去上锁!如果出现了问题,再次更新值测试
悲观锁:故名思意十分悲观,它总是认为总是出现问题,无论干什么都会上锁!再去操作!
我们这里主要讲解乐观锁机制!
取出记录时,获取当前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
0基础 0学费 15天面授
Java就业班有基础 直达就业
业余时间 高薪转行
Java在职加薪班工作1~3年,加薪神器
工作3~5年,晋升架构
提交申请后,顾问老师会电话与您沟通安排学习