V
- 此引用引用的对象的类型
public class AtomicReference<V> extends Object implements Serializable
java.util.concurrent.atomic
包规范。
Constructor and Description |
---|
AtomicReference()
使用null初始值创建新的AtomicReference。
|
AtomicReference(V initialValue)
用给定的初始值创建一个新的AtomicReference。
|
Modifier and Type | Method and Description |
---|---|
V |
accumulateAndGet(V x, BinaryOperator<V> accumulatorFunction)
使用将给定函数应用于当前值和给定值的结果原子更新当前值,返回更新后的值。
|
boolean |
compareAndSet(V expect, V update)
如果当前值
== 为预期值,则将值设置为给定的更新值。
|
V |
get()
获取当前值。
|
V |
getAndAccumulate(V x, BinaryOperator<V> accumulatorFunction)
使用给定函数应用给当前值和给定值的结果原子更新当前值,返回上一个值。
|
V |
getAndSet(V newValue)
将原子设置为给定值并返回旧值。
|
V |
getAndUpdate(UnaryOperator<V> updateFunction)
用应用给定函数的结果原子更新当前值,返回上一个值。
|
void |
lazySet(V newValue)
最终设定为给定值。
|
void |
set(V newValue)
设置为给定值。
|
String |
toString()
返回当前值的String表示形式。
|
V |
updateAndGet(UnaryOperator<V> updateFunction)
使用给定函数的结果原子更新当前值,返回更新的值。
|
boolean |
weakCompareAndSet(V expect, V update)
如果当前值为
== ,则将原值设置为给定的更新值。
|
public AtomicReference(V initialValue)
initialValue
- 初始值
public AtomicReference()
public final V get()
public final void set(V newValue)
newValue
- 新价值
public final void lazySet(V newValue)
newValue
- 新价值
public final boolean compareAndSet(V expect, V update)
==
为预期值,则将值设置为给定的更新值。
expect
- 预期值
update
- 新的价值
true
如果成功。
False return表示实际值不等于预期值。
public final boolean weakCompareAndSet(V expect, V update)
==
的预期值,则将该值原子设置为给定的更新值。
May fail spuriously and does not provide ordering guarantees ,所以只是很少适合替代compareAndSet
。
expect
- 预期值
update
- 新的价值
true
如果成功
public final V getAndUpdate(UnaryOperator<V> updateFunction)
updateFunction
- 无副作用的功能
public final V updateAndGet(UnaryOperator<V> updateFunction)
updateFunction
- 无副作用的功能
public final V getAndAccumulate(V x, BinaryOperator<V> accumulatorFunction)
x
- 更新值
accumulatorFunction
- 两个参数的无副作用的函数
public final V accumulateAndGet(V x, BinaryOperator<V> accumulatorFunction)
x
- 更新值
accumulatorFunction
- 两个参数的无副作用函数
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.