千家信息网

Java 中 CAS的原理是什么

发表于:2025-02-04 作者:千家信息网编辑
千家信息网最后更新 2025年02月04日,这篇文章主要介绍"Java 中 CAS的原理是什么",在日常操作中,相信很多人在Java 中 CAS的原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Java
千家信息网最后更新 2025年02月04日Java 中 CAS的原理是什么

这篇文章主要介绍"Java 中 CAS的原理是什么",在日常操作中,相信很多人在Java 中 CAS的原理是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Java 中 CAS的原理是什么"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

CAS 有三个操作数,内存值V,旧的预期值A,要修改的新值B。当且仅当预期值A和内存值V相等时,将内存值V修改成B。这是一种乐观锁的思路,他相信在它修改之前,没有其他线程去修改他。

CAS 的缺陷:ABA 问题。CAS 是在更新值时,检查值有没有发生变化,如果没发生变化就执行更新操作。但是如果原来是 A,变成了 B,后来又变成 A,那么 CAS 是不会知道值已经发生变化了。但实际上却变化了。ABA 问题的解决思路就是使用版本号。给变量追加版本号,每次变量更新就将版本号 +1.那么 A-B-A 就会变成 A1-B2-A3

到此,关于"Java 中 CAS的原理是什么"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!

0