简介
原子类都是使用CAS的方式来进行实现的,而原子类的分类如图所示;由于浮点数不能精确确定其的准确值,所以没有浮点类的原子类。
ABA问题
当引用类型的数据被修改的时候会出现ABA问题,这样会造成一些问题。所以原子类也给了对应的类来防止这种现象出现,比如AtomicStampedReference
。
1
2
3
4
5
6
AtomicStampedReference<String> atomic=new AtomicStampedReference<>("hello",0);
int stamp = atomic.getStamp();
boolean hello = atomic.compareAndSet("hello", "hello-1", 0, 1);
if (hello){
System.out.println(atomic.getReference());
}