• 悲观锁

    • 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁。
    • 传统的关系型数据库中用到了很多这种锁机制,比如行级锁、表级锁、读锁、写锁等,都是在做操作之前先上锁。
    • 使用场景:多写的场景
    • 实现方式:加锁
  • 乐观锁

    • 总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据。如果别人更新了数据则放弃操作。
    • 乐观锁并未真正加锁
    • 使用场景:多读的场景
    • 实现方式:
      • CSA(Compare and Swap)机制
        image
      • 版本号机制
        image
posted on 2020-02-13 22:09  xiaobaizzZ  阅读(145)  评论(0编辑  收藏  举报