美文网首页
Java并发编程:CAS和AQS

Java并发编程:CAS和AQS

作者: 程序员116号 | 来源:发表于2019-02-12 14:27 被阅读0次

    一、什么是CAS

    CAS(Compare And Swap),即比较并交换。是解决多线程并行情况下使用锁造成性能损耗的一种机制,CAS操作包含三个操作数————内存位置(V)、预期原值(A) 和新值(B)。如果内存位置的值与预期原值相匹配,那么处理器会自动将该位置值更新为新值。否则,处理器不做任何操作。无论哪种情况,它都会在CAS指令之前返回该位置的值。CAS有效地说明了“我认为位置V应该包含值A;如果包含该值,则将B放到这个位置;否则,不要更改该位置,只告诉我这个位置现在的值即可。”

    二、什么是AQS

    AQS(AbstractQueuedSynchronizer),AQS是JDK下提供的一套用于实现基于FIFO等待队列的阻塞锁和相关的同步器的一个同步框架。这个抽象类被设计为作为一些可用原子int值来表示状态的同步器的基类。

    相关文章

      网友评论

          本文标题:Java并发编程:CAS和AQS

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