AtomicStampedReference的实现与该类相似
package com.xz.concurrent.atomic;
/**
* 在原子变量类中 对于引用类型的操作,用于解决CAS的ABA问题
* AtomicMarkableReference:带boolean类型的引用型原子量 每次执行CAS操作都需要比较该标记位
* 若版本吗,满足要求 则操作成功 版本不满足要求 则操作失败
* 表示引用变量是否被更改过
*/
public class AtomicMarkableReference<V> {
/**
* 内部维护的[reference,boolean]二元组 AtomicMarkableReference的相关操作是对Pair内成员的操作
*/
private static class Pair<T> {
final T reference;
final boolean mark;
//构造方法
private Pair(T reference, boolean mark) {
this.reference = reference;
this.mark = mark;
}
//创建Pair实例-类加载时
static <T> AtomicMarkableReference.Pair<T> of(T reference, boolean mark) {
return new AtomicMarkableReference.Pair<T>(reference, mark);
}
}
/**
* 多线程共享变量
*/
private volatile AtomicMarkableReference.Pair