这篇文章主要介绍“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的原理是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注亿速云网站,小编会继续努力为大家带来更多实用的文章!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。