//Lock-Free算法,不需要加锁,通常都是由三个部分组成
class Count1{
private AtomicInteger max = new AtomicInteger();
public void set(int value){
while(true){//1、循环
int current = max.get();
if(value > current){//满足一定的条件,则进行设置值
if(max.compareAndSet(current, value)){//2、CAS(CompareAndSet)
break;//3、回退
}else{
continue;
}
}else{
break;
}
}
}
public int getMax(){
return max.get();
}
}
class Count2{
private volatile int max = 0;
public synchronized void set(int value){
if(value > max){
max = value;
}
}
public int getMax(){
return max;
}
}
lock-free线程安全算法
最新推荐文章于 2024-03-24 11:55:39 发布