java.lang.Object
java.util.concurrent.atomic.AtomicStampedReference<V>
- 类型参数:
V- 此引用引用的对象类型
AtomicStampedReference 维护一个对象引用以及一个可以自动更新的整数“戳记”。
实现注意事项:此实现通过创建表示“盒装”[reference, integer] 对的内部对象来维护标记引用。
- 自从:
- 1.5
-
构造方法总结
构造方法构造方法描述AtomicStampedReference(V initialRef, int initialStamp) 使用给定的初始值创建一个新的AtomicStampedReference。 -
方法总结
修饰符和类型方法描述booleanattemptStamp(V expectedReference, int newStamp) 如果当前引用是==到预期引用,则以原子方式将标记的值设置为给定的更新值。booleancompareAndSet(V expectedReference, V newReference, int expectedStamp, int newStamp) 如果当前引用是==到预期引用并且当前戳记等于预期戳记,则以原子方式将引用和戳记的值设置为给定的更新值。get(int[] stampHolder) 返回引用和标记的当前值。返回引用的当前值。intgetStamp()返回标记的当前值。void无条件地设置引用和标记的值。booleanweakCompareAndSet(V expectedReference, V newReference, int expectedStamp, int newStamp) 如果当前引用是==到预期引用并且当前戳记等于预期戳记,则以原子方式将引用和戳记的值设置为给定的更新值。
-
构造方法详细信息
-
AtomicStampedReference
使用给定的初始值创建一个新的AtomicStampedReference。- 参数:
initialRef- 初始参考initialStamp- 初始邮票
-
-
方法详情
-
getReference
返回引用的当前值。- 返回:
- 参考的当前值
-
getStamp
public int getStamp()返回标记的当前值。- 返回:
- 邮票的当前值
-
get
返回引用和标记的当前值。典型用法是int[1] holder; ref = v.get(holder);。- 参数:
stampHolder- 大小至少为 1 的数组。返回时,stampHolder[0]将保留邮票的值。- 返回:
- 参考的当前值
-
weakCompareAndSet
public boolean weakCompareAndSet(V expectedReference, V newReference, int expectedStamp, int newStamp) 如果当前引用是==到预期引用并且当前戳记等于预期戳记,则以原子方式将引用和戳记的值设置为给定的更新值。此操作可能会虚假地失败并且不提供排序保证,因此很少是compareAndSet的合适替代方案。- 参数:
expectedReference- 参考的期望值newReference- 参考的新值expectedStamp- 邮票的预期值newStamp- 邮票的新值- 返回:
true如果成功
-
compareAndSet
如果当前引用是==到预期引用并且当前戳记等于预期戳记,则以原子方式将引用和戳记的值设置为给定的更新值。- 参数:
expectedReference- 参考的期望值newReference- 参考的新值expectedStamp- 邮票的预期值newStamp- 邮票的新值- 返回:
true如果成功
-
set
无条件地设置引用和标记的值。- 参数:
newReference- 参考的新值newStamp- 邮票的新值
-
attemptStamp
如果当前引用是==到预期引用,则以原子方式将标记的值设置为给定的更新值。此操作的任何给定调用都可能虚假地失败(返回false),但当当前值保持预期值并且没有其他线程也试图设置该值时重复调用最终将成功。- 参数:
expectedReference- 参考的期望值newStamp- 邮票的新值- 返回:
true如果成功
-