zoukankan      html  css  js  c++  java
  • 悲观锁和乐观锁

    悲观锁和乐观锁的使用场景及具体实现
    悲观锁对于每次数据操作都认为会被其他事物修改,所以使用所机制锁住当前数据项,其他修改事物在此次数据操作完成之前都要等待。
    悲观锁对于数据并发冲突可能性比较高的情况下使用,写操作比较多,冲突性大会导致上层不断地retry消耗性能。
    乐观锁对于每次数据操作都认为不会被其他事务所修改,没有加锁,但是使用版本号标记,每次修改前会判断版本号(判断在这期间有没有人更新过数据),版本号一致就进行数据修改,不一致就返回更新错误。
    乐观锁对于数据并发冲突可能性比较小的情况下使用,写操作比较少,冲突性小省去了锁的开销,提升了性能加大了系统整个的吞吐量。

    建议:通过挑选乐观锁,可以减小锁力度,从而提升吞吐.乐观锁需要灵活运用,现在互联网高并发架构中,收到fail-fast思路的影响,悲观锁已经非常少见了。

    分享、奉献、勤奋、好学
  • 相关阅读:
    MD5 SHA1 CRC32
    tf 常用函数 28原则
    matplotlib 28原则
    markdown 基本语法
    tf 数据读取
    django 自定义身份认证
    代理部署
    社区发现算法问题&&NetworkX&&Gephi
    机器学习中的数学——拉格朗日乘子法
    过拟合(Overfitting)和正规化(Regularization)
  • 原文地址:https://www.cnblogs.com/zzlblog/p/8522510.html
Copyright © 2011-2022 走看看