多线程JUC 第2季 CAS的作用介绍

2023-12-14 21:17:24

一? CAS作用介绍

1.1 CAS作用

CAS有3个操作数,位置内存值V,旧的预期值A,要修改的更新值B,如果内存值V和预期值相同则,内存值改为B,否则什么都不做。当它重来重试的这种行为称为-自旋。

CAS是一条cpu的原子指令,不会造成所谓的数据不一致问题。CAS是靠硬件实现的从而在硬件层面提升效率,最底层还是交给硬件来保证原子性和可见性。

2.案例代码

1.2 unsafe类

在java中CAS操作的执行依赖于Unsafe类的方法,其中Unsafe类存在于sun.misc包中,其内部方法操作可以像C的指针一样直接操作内存

意unsafe类中的所有方法都是native修饰的,也就是说unsafe类中的方法都直接调用操作系统底层资源,执行相应任务。

AtomicInteger类主要利用CAS+voltile和native方法来保证原子操作,从而避免synchronized的高开销,执行效率大为提升。

文章来源:https://blog.csdn.net/u011066470/article/details/134999607
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。