乐观锁和悲观锁
顾名思义:
乐观锁:十分乐观,他总是认为不会出现问题,无论干什么都不去上锁。如果出现了问题,就更新值测试。
悲观锁:十分悲观,他总是认为会出现很多问题,无论干什么都会先上锁,再去操作。
乐观锁:就是给所有的操作加个Version
- 取出记录时,获取当前version
- 更新时带上这个version
- 执行更新时, set version=new version where version=old version
- 如果version不对,就更新失败
update user set name=“ws” ,version=version+1
where id=2 and version=1
两个线程
– A ,一开始A在运行
– B ,后来B抢先完成
这时b会将version改为2,这时a的条件=1就不满足了,就会修改失败。