AtomicReference 自动更新对象应用
@ThreadSafe
public class ConcurrencyByAtomicReference {
private static AtomicReference count = new AtomicReference(0);
public static void main(String[] args) {
count.compareAndSet(0,2);//2
count.compareAndSet(0,1);//no
count.compareAndSet(2,3);//3
count.compareAndSet(2,5);//no
System.out.println(count.get());//3
}
}
关于使用Atomic实现单例
public class AtomicSingleton{
private AtomicSingleton() {
}
private static AtomicReference<AtomicSingleton> instance = new AtomicReference<>();
public static AtomicSingleton getInstance() {
if(instance.get() == null) {
instance.compareAndSet(null,new AtomicSingleton());
}
return instance.get();
}
}