美文网首页面试宝典
Java 锁机制 - CAS 乐观锁

Java 锁机制 - CAS 乐观锁

作者: 撸帝 | 来源:发表于2019-02-26 01:40 被阅读0次

    学习完整课程请移步 互联网 Java 全栈工程师

    • CAS 是项乐观锁技术,当多个线程尝试使用 CAS 同时更新同一个变量时,只有其中一个线程能更新变量的值,而其它线程都失败,失败的线程并不会被挂起,而是被告知这次竞争中失败,并可以再次尝试。

    • CAS 操作包含三个操作数 —— 内存位置(V)、预期原值(A)和新值(B)。如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值。否则,处理器不做任何操作。无论哪种情况,它都会在 CAS 指令之前返回该位置的值。(在 CAS 的一些特殊情况下将仅返回 CAS 是否成功,而不提取当前值。)CAS 有效地说明了“我认为位置 V 应该包含值 A;如果包含该值,则将 B 放到这个位置;否则,不要更改该位置,只告诉我这个位置现在的值即可。”这其实和乐观锁的冲突检查 + 数据更新的原理是一样的。

    相关文章

      网友评论

        本文标题:Java 锁机制 - CAS 乐观锁

        本文链接:https://www.haomeiwen.com/subject/hiloyqtx.html