java并发编程:线程安全管理类--原子操作类--AtomicBoolean

时间:2023-12-29 16:28:50

1.类AtomicBoolean

  aaarticlea/png;base64,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" alt="" />

可以用原子方式更新的 boolean 值。有关原子变量属性的描述,请参阅 java.util.concurrent.atomic 包规范。AtomicBoolean 可用在应用程序中(如以原子方式更新的标志),但不能用于替换 Boolean

2.构造函数

  1.AtomicBoolean()

    使用初始值 false 创建新的 AtomicBoolean

  2.AtomicBoolean(boolean initialValue)

    使用给定的初始值创建新的 AtomicBoolean

3.方法详解

get

public final boolean get()
返回当前值。
返回:
当前值

compareAndSet

public final boolean compareAndSet(boolean expect,
boolean update)
如果当前值 == 预期值,则以原子方式将该值设置为给定的更新值。
参数:
expect - 预期值
update - 新值
返回:
如果成功,则返回 true。返回 False 指示实际值与预期值不相等。

weakCompareAndSet

public boolean weakCompareAndSet(boolean expect,
boolean update)
如果当前值 == 预期值,则以原子方式将该值设置为给定的更新值。

可能意外失败并且不提供排序保证,因此几乎只是 compareAndSet 的适当替代方法。

参数:
expect - 预期值
update - 新值
返回:
如果成功,则返回 true。

set

public final void set(boolean newValue)
无条件地设置为给定值。
参数:
newValue - 新值

lazySet

public final void lazySet(boolean newValue)
最终设置为给定值。
参数:
newValue - 新值
从以下版本开始:
1.6

getAndSet

public final boolean getAndSet(boolean newValue)
以原子方式设置为给定值,并返回以前的值。
参数:
newValue - 新值
返回:
以前的值

toString

public String toString()
返回当前值的字符串表示形式。
覆盖:
Object 中的 toString
返回:
当前值的字符串表示形式。