zoukankan      html  css  js  c++  java
  • java中的悲观锁和乐观锁实现

    悲观锁就是认为并发时一定会有冲突发生,采用互斥的策略。比如java中的synchronized。

    而乐观锁是假设并发时不会有冲突发生,如果发生冲突,则操作失败,并不断重试。乐观锁的机制就是CAS(Compare and Swap)。

    大多数的处理器都会实现一个CAS指令。

    CAS包含了三个操作数,需要读写的内存位置V,进行比较的值A,和需要写入的新值B。

    当且仅当V等于A时,CAS才会通过原子方式用新值B更新V。

    它的含义是:我认为V的值应该是A,那么将V的值更新为B,否则不修改并告诉V的实际值是多少。

    CAS是一项乐观锁技术,它希望可以成功执行更新操作,并且如果有另外一个线程在最近一次检查后更新了该变量。CAS可以检测到这个错误。

  • 相关阅读:
    codechef BIBOARD
    Tree
    NOIWC2021总结
    星际穿越
    GDKOI总结
    lg4229
    P3320 [SDOI2015]寻宝游戏
    P6670 [清华集训2016] 汽水
    P6326 Shopping
    P3060 [USACO12NOV]Balanced Trees G
  • 原文地址:https://www.cnblogs.com/zhangjwcode/p/7145647.html
Copyright © 2011-2022 走看看