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的原理是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!
文章标题:Java中CAS的原理是什么
标题网址:http://scyanting.com/article/pceoci.html