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

    悲观锁

    总是假设最坏的情况,每次拿数据都认为别人会修改数据,所以要加锁,别人只能等待,直到我释放锁才能拿到锁;数据库的行锁、表锁、读锁、写锁都是这种方式,java中的synchronized和ReentrantLock也是悲观锁的思想。

    乐观锁

    总是假设最好的情况,每次拿数据都认为别人不会修改数据,所以不会加锁,但是更新的时候,会判断在此期间有没有人修改过;一般基于版本号机制实现。

    使用场景

    乐观锁适用于读多写少的情况,即冲突很少发生;如果是多写的情况,应用会不断重试,反而会降低系统性能,这种情况最好用悲观锁,因为等待到锁被释放后,可以立即获得锁进行操作。

  • 相关阅读:
    Visual Studio2019安装步骤
    写在第一页的话
    数状数组
    hdu 3501 数学题
    静态邻接表
    最长子序列
    hdu 1094 所想到的
    bellman_ford
    郁闷的一晚
    SPFA + 静态邻接表 模板
  • 原文地址:https://www.cnblogs.com/yinchh/p/10516168.html
Copyright © 2011-2022 走看看