Mybatis ---1025-乐观锁 悲观锁
乐观锁 :cvs 算法()
悲观锁: synchronize,lock
悲观锁: **总以为别人要用 总有人 自己要用的时候会被别人修改 所以自己用的时候 自己把它锁住了 。其他然需要他用完之后释放锁之后才能用。**有两个人拿到1 了 然后 一个人要把1 改成2 了 。 如果是悲观锁 就是把并行改为串行,就是如果 第一个人要修改就把数据锁起来 等第一个人修改成功之后再去别人访问才可以。把并发变串行。
(第一个人改为2 第二个人改为3 报错) 他以为1到3 其实已经被别人改为2 了已经
乐观锁:总以为不冲突。两个人可以同时用
如果自己需要修改 看看是不是和刚开始自己拿的时候(库里面)一样的是1 。改的那个刹那需要看一下。使用在最终修改前瞬间去检验
两个人取数据 都可以拿得到 ,但是当第一个人拿到1 修改了 把数据从1 改为2 之后。 因为第二个人是并发拿数据的所以拿的也是 1 如果想要修改1 改为2 。需要看一下数据里面的还是不是原来第一个人没有修改之前的 1 。如果是1 就可以修改,如果是2 就不能再修改了。
悲观锁效率太低了。
每次修改的时候 版本号自增修改。每个版本修改完 就换一个版本了。