当前位置:   article > 正文

【多线程】CAS缺点以及synchronized原理

cas缺点

目录

一、CAS缺点

1、CAS中的ABA问题

2、在竞争激烈以后,CPU开销较大

3、不能保证代码块的原子性

二、synchronized原理

三、锁升级的过程

1、对象头

(1)Mark Word

(2)指向类的指针

(3)数组长度

2、实例数据

3、对齐填充字节

4、偏向锁

   


一、CAS缺点

1、CAS中的ABA问题

CAS操作想要进行赋值时,会拿原来的取值和现在的值比较;但是万一这个值在我们取值之后,被别的线程改变了,但是紧接着又被别的线程改回来了;比较一下值,发现是相同的,我们认为没人修改这个值,可以进行赋值;但是其实这个值已经被改变过来了,这就是CAS中的ABA问题。

举个银行的例子,如果A账户存100万,B拿了50万,在A发现之前

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/303191
推荐阅读
相关标签
  

闽ICP备14008679号