Module java.base

Class AtomicBoolean

java.lang.Object
java.util.concurrent.atomic.AtomicBoolean
所有已实现的接口:
Serializable

public class AtomicBoolean extends Object implements Serializable
一个可以原子方式更新的boolean值。查看VarHandle规范以了解原子访问属性的描述。一个AtomicBoolean用于应用程序中如原子更新标志等场景,并不能用作替代Boolean的替代品。
自版本:
1.5
另请参阅:
  • Constructor Details

    • AtomicBoolean

      public AtomicBoolean(boolean initialValue)
      创建一个给定初始值的新AtomicBoolean
      参数:
      initialValue - 初始值
    • AtomicBoolean

      public AtomicBoolean()
      创建一个初始值为false的新AtomicBoolean
  • Method Details

    • get

      public final boolean get()
      返回当前值,具有VarHandle.getVolatile(java.lang.Object...)指定的内存效果。
      返回:
      当前值
    • compareAndSet

      public final boolean compareAndSet(boolean expectedValue, boolean newValue)
      如果当前值== 期望值,则以VarHandle.compareAndSet(java.lang.Object...)指定的内存效果将值设置为newValue
      参数:
      expectedValue - 期望值
      newValue - 新值
      返回:
      如果成功则返回true。返回false表示实际值不等于期望值。
    • weakCompareAndSet

      @Deprecated(since="9") public boolean weakCompareAndSet(boolean expectedValue, boolean newValue)
      Deprecated.
      This method has plain memory effects but the method name implies volatile memory effects (see methods such as compareAndExchange(boolean, boolean) and compareAndSet(boolean, boolean)). To avoid confusion over plain or volatile memory effects it is recommended that the method weakCompareAndSetPlain(boolean, boolean) be used instead.
      可能以原子方式将值设置为newValue,如果当前值== 期望值,具有VarHandle.weakCompareAndSetPlain(java.lang.Object...)指定的内存效果。
      参数:
      expectedValue - 期望值
      newValue - 新值
      返回:
      如果成功则返回true
      另请参阅:
    • weakCompareAndSetPlain

      public boolean weakCompareAndSetPlain(boolean expectedValue, boolean newValue)
      可能以原子方式将值设置为newValue,如果当前值== 期望值,具有VarHandle.weakCompareAndSetPlain(java.lang.Object...)指定的内存效果。
      参数:
      expectedValue - 期望值
      newValue - 新值
      返回:
      如果成功则返回true
      自版本:
      9
    • set

      public final void set(boolean newValue)
      将值设置为newValue,具有VarHandle.setVolatile(java.lang.Object...)指定的内存效果。
      参数:
      newValue - 新值
    • lazySet

      public final void lazySet(boolean newValue)
      将值设置为newValue,具有VarHandle.setRelease(java.lang.Object...)指定的内存效果。
      参数:
      newValue - 新值
      自版本:
      1.6
    • getAndSet

      public final boolean getAndSet(boolean newValue)
      以原子方式将值设置为newValue并返回旧值,具有VarHandle.getAndSet(java.lang.Object...)指定的内存效果。
      参数:
      newValue - 新值
      返回:
      先前的值
    • toString

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

      public final boolean getPlain()
      返回当前值,具有读取内存语义,就好像变量被声明为非volatile
      返回:
      自版本:
      9
    • setPlain

      public final void setPlain(boolean newValue)
      将值设置为newValue,具有设置内存语义,就好像变量被声明为非volatile和非final
      参数:
      newValue - 新值
      自版本:
      9
    • getOpaque

      public final boolean getOpaque()
      返回当前值,具有VarHandle.getOpaque(java.lang.Object...)指定的内存效果。
      返回值:
      自 JDK 版本:
      9
    • setOpaque

      public final void setOpaque(boolean newValue)
      将值设置为 newValue,具有由 VarHandle.setOpaque(java.lang.Object...) 指定的内存效果。
      参数:
      newValue - 新值
      自 JDK 版本:
      9
    • getAcquire

      public final boolean getAcquire()
      返回当前值,具有由 VarHandle.getAcquire(java.lang.Object...) 指定的内存效果。
      返回值:
      自 JDK 版本:
      9
    • setRelease

      public final void setRelease(boolean newValue)
      将值设置为 newValue,具有由 VarHandle.setRelease(java.lang.Object...) 指定的内存效果。
      参数:
      newValue - 新值
      自 JDK 版本:
      9
    • compareAndExchange

      public final boolean compareAndExchange(boolean expectedValue, boolean newValue)
      如果当前值(称为 见证值== expectedValue,则使用由 VarHandle.compareAndExchange(java.lang.Object...) 指定的内存效果原子地将值设置为 newValue
      参数:
      expectedValue - 期望的值
      newValue - 新值
      返回值:
      见证值,如果成功将与期望值相同
      自 JDK 版本:
      9
    • compareAndExchangeAcquire

      public final boolean compareAndExchangeAcquire(boolean expectedValue, boolean newValue)
      如果当前值(称为 见证值== expectedValue,则使用由 VarHandle.compareAndExchangeAcquire(java.lang.Object...) 指定的内存效果原子地将值设置为 newValue
      参数:
      expectedValue - 期望的值
      newValue - 新值
      返回值:
      见证值,如果成功将与期望值相同
      自 JDK 版本:
      9
    • compareAndExchangeRelease

      public final boolean compareAndExchangeRelease(boolean expectedValue, boolean newValue)
      如果当前值(称为 见证值== expectedValue,则使用由 VarHandle.compareAndExchangeRelease(java.lang.Object...) 指定的内存效果原子地将值设置为 newValue
      参数:
      expectedValue - 期望的值
      newValue - 新值
      返回值:
      见证值,如果成功将与期望值相同
      自 JDK 版本:
      9
    • weakCompareAndSetVolatile

      public final boolean weakCompareAndSetVolatile(boolean expectedValue, boolean newValue)
      如果当前值 == expectedValue,则使用由 VarHandle.weakCompareAndSet(java.lang.Object...) 指定的内存效果可能原子地将值设置为 newValue
      参数:
      expectedValue - 期望的值
      newValue - 新值
      返回值:
      如果成功则为 true
      自 JDK 版本:
      9
    • weakCompareAndSetAcquire

      public final boolean weakCompareAndSetAcquire(boolean expectedValue, boolean newValue)
      如果当前值 == expectedValue,则使用由 VarHandle.weakCompareAndSetAcquire(java.lang.Object...) 指定的内存效果可能原子地将值设置为 newValue
      参数:
      expectedValue - 期望的值
      newValue - 新值
      返回值:
      如果成功则为 true
      自 JDK 版本:
      9
    • weakCompareAndSetRelease

      public final boolean weakCompareAndSetRelease(boolean expectedValue, boolean newValue)
      如果当前值 == expectedValue,则使用由 VarHandle.weakCompareAndSetRelease(java.lang.Object...) 指定的内存效果可能原子地将值设置为 newValue
      参数:
      expectedValue - 期望的值
      newValue - 新值
      返回值:
      如果成功则为 true
      自 JDK 版本:
      9