当前位置:
首页 >
Java-CAS初探
发布时间:2025/6/15
48
豆豆
生活随笔
收集整理的这篇文章主要介绍了
Java-CAS初探
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
能不能不对共享资源进行锁定,也能对线程调用进行协调?
CAS: compare and sawp 可以简单翻译为比较然后交换.
old value:代表之前读到的资源对象的状态止.
new value: 代表想要将资源对象的状态值更新后的值.
各种不同架构的cpu都提供了指令级别的cas原子操作. cpu已经原生的支持了cas.
在x86架构下, 通过 cmpxchg指令支持cas.
在arm架构下,通过LL/SC来实现cas.
那么在java中,是如何封装调用cas的呢?
利用unsafe提供的原子性操作方法.
什么事ABA问题?怎么解决?
当一个值从A变成B,又更新回A,普通CAS机制会误判通过检测。利用版本号比较可以有效解决ABA问题。
总结
以上是生活随笔为你收集整理的Java-CAS初探的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: Java-ReentrantLock初探
- 下一篇: Java栈和局部变量操作(二)