锁定的机制
- 乐观锁:顾名思义十分乐观,他总是认为不会出现问题,无论干什么都不会去上锁!如果出现了问题,再次更新值测试!
- 悲观锁:顾名思义十分悲观,他总是认为会出现问题,无论怎样都会上锁,再去操作!
乐观锁实现方式
- 取出记录时,获取当前version
- 更新时,带上这个version
- 执行更新时,set version=newVersion where version=oldVersion
- 如果version不对,就更新失败
乐观锁:1,先查询,获得版本号 version=1
--A
update user set name =“ning” version=version+1
where id=1 and version =1
--B 如果这里B线程先执行 版本号加1 则version=2 A线程则无法执行
update user set name="ning" version=version+1
where id=1 and version =1