2016 - 2024

感恩一路有你

synchronized详解 aqs和cas有什么区别?

浏览量:2430 时间:2021-03-16 15:34:25 作者:admin

aqs和cas有什么区别?

区别如下:

CAS(比较和交换)。CAS操作由三个操作数组成:内存位置(V)、预期原始值(a)和新值(b)。如果内存位置的值与预期的原始值匹配,处理器会自动将位置值更新为新值。否则,处理器什么也不做。无论哪种情况,它都返回CAS指令之前的位置值。CAS有效地表示“我认为位置V应该包含值a;如果它包含值,则将B放在该位置;否则,不要更改位置,只需告诉我该位置的当前值。

如何通过AQS构建锁和同步器的框架?

AQS的设计思想是通过继承提供一个模板,这样我们就可以根据不同的场景轻松实现个性化的同步器。同步器的核心是管理共享状态。通过控制状态可以实现不同的锁定机制。AQS的设计必须考虑到队列管理工作的复杂性和易出错性,统一抽象管理,并对进程进行控制,而暴露于子类调用的方法是操作共享状态的方法,以便提供原子操作的状态。通常,子类的同步器使用AQS提供的getstate、setstate和compareandsetstate方法。前两种方法是普通的get和set方法。要使用这两种方法,必须确保没有数据竞争。Compareandsetstate方法提供CAS模式硬件级原子更新。对于独占模式,给出了锁获取和释放过程的定义,定义了锁获取和释放的逻辑,并为子类提供了获取和释放锁的接口。它的执行逻辑可以参考前面的“锁获取和释放”,它提供了一个强大的模板

synchronized详解 synchronized使用方式 aqs什么意思

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。