java面试我爱编程

Java并发编程之CAS

2018-05-27  本文已影响7人  土豆有点

CAS(Compare and swap)比较和替换是设计并发算法时用到的一种技术。简单来说,比较和替换是使用一个期望值和一个变量的当前值进行比较,如果当前变量的值与我们期望的值相等,就使用一个新值替换当前变量的值。


image.png

CAS:用来保证内存缓冲一致性的一种实现手段
实现方法如下,当三个线程都要实现i++,最开始i=0。
线程1把i=0加载到工作内存1中,此时线程2得到线程控制权把i=0加载到工作内存1中并实现i++把i=1重写到主内存中,这时候线程1有得到线程控制权根据CAS算法,它要读主内存的值发现与自己工作内存的值不同此时它要放弃对工作内存1中i=0的i++操作。

上一篇下一篇

猜你喜欢

热点阅读