3. 原子变量-CAS算法

时间:2023-03-08 22:13:55

1. 是什么 ?

3. 原子变量-CAS算法

2. CAS算法模拟

package com.gf.demo03;
public class TestCompareAndSwap { public static void main(String[] args) {
CompareAndSwap cas = new CompareAndSwap();
for (int i = 0; i < 10; i++) {
new Thread(new Runnable() { @Override
public void run() {
int expectedValue = cas.get();
boolean b = cas.compareAndSet(expectedValue, (int)(Math.random() * 101));
System.out.println(b);
}
}).start();
}
} } class CompareAndSwap{
private int value; //获取内存值
public synchronized int get(){
return value;
} //比较
public synchronized int compareAndSwap(int expectedValue,int newValue){
int oldValue = value;
if(oldValue == expectedValue){
this.value = newValue;
} return oldValue;
} //设置
public synchronized boolean compareAndSet(int expectedValue,int newValue){
return expectedValue == compareAndSwap(expectedValue, newValue);
}
}

3. 原子变量-CAS算法

关注我的公众号,精彩内容不能错过