目录
相关文章:
java高并发:CAS无锁原理及广泛应用(2w阅读量)
漫画:什么是 CAS 机制?(漫画版,深入浅出)
漫画:什么是CAS机制?(进阶篇)(Java语言CAS底层如何实现、什么是ABA问题?怎么解决?)
一、什么是CAS?
具体可看 漫画:什么是 CAS 机制?
Atomic操作类的底层,正是利用了我们所说的CAS机制
CAS是英文单词Compare And Swap的缩写,翻译过来就是比较并替换。
CAS(V,E,N) 机制当中使用了3个基本操作数:内存地址V,旧的预期值A,要修改的新值B。
更新一个变量的时候,只有当变量的预期值A和内存地址V当中的实际值相同时,才会将内存地址V对应的值修改为B。
先来实现一段代码
1.1、Demo1
public class Demo1 {
int i = 0;
public void incr() {
i++;//加1操作
}
public static void main(String[] args)throws Exception {
Demo1 demo1 = new Demo1();
for (int j = 0; j < 2; j++) {//new 两个线程
new Thread(new Runnable() {
@Override
public void run() {
for (int k = 0; k < 10000; k++) {//每个线程执行10000遍
demo1.incr();
}
}
}).start();
}
Thread.sleep(1000);
System.out.println(demo1.i);//打印结果是否为20000?
}
}
打印结果&#