欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

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初探的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。