乐观锁∶故名思意十分乐观,它总是认为不会出现问题,无论干什么不去上锁!如果出现了问题,再次更新值测试
悲观锁:故名思意十分悲观,它总是认为总是出现问题,无论干什么都会上锁!再去操作!
我们这里主要讲解乐观锁机制!
取出记录时,获取当前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
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习