欢乐锁和悲观锁的小问题_Oracle_编程问答

欢乐锁和悲观锁的小问题

来源:互联网  时间:2018/1/25 12:05:38

关于网友提出的“ 欢乐锁和悲观锁的小问题”问题疑问,本网通过在网上对“ 欢乐锁和悲观锁的小问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 欢乐锁和悲观锁的小问题
描述:

前辈们好!问题如下:

面试的时候经常被问道欢乐锁和悲观锁的区别,小弟想知道,什么情况下用欢乐锁,什么情况下用悲观所,以及如何实现欢乐锁和悲观锁?

问题有点多,谢谢回答。


解决方案1:

简单来说. 乐观锁就是先让所有并发访问都能访问到数据. 在他们提交数据的时候做版本判断. 如果版本不对. 就提交失败. 悲观锁就是 在并发访问的时候排队. 也可以看作是串行的提交. 比如redis. 用的就是乐观锁. 并发提交时. 先让大家都获取一个类似于版本记录的值. 然后真正提交时. 会对比这个值. 如果不符合就提交失败. 这样保证只有一个能提交成功. 而悲观锁会在提交前 获取一个类似于写锁的东西. 只准一个人在那写. 不能并发. 比如mysql如果你select 的时候使用了 for update 这样的语句. 也就相当于手动加上了一个悲观锁.

解决方案2:

悲观锁是显式的,乐观锁是MVCC

解决方案3:

  • http://chenzhou123520.iteye.c...
  • https://www.zhihu.com/questio...

上一篇使用PL/SQL查询库,查询速度很快,但数据加载非常慢。
下一篇:没有了
明星图片
相关文章
《 欢乐锁和悲观锁的小问题》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)