JUC_atomic_AtomicBoolean方法详解

AtomicBoolean 是 Java 中提供的一种线程安全的布尔类型原子类,能够保证对其操作的原子性和可见性,常用于控制多线程中的某些操作。

AtomicBoolean 还实现了 java.io.Serializable 和 java.util.concurrent.atomic.Serializable,可以序列化和反序列化,因此可以被用于进行远程传输操作或持久化到硬盘上。

在使用 AtomicBoolean 时,可以通过 get() 方法获取当前的布尔值,也可以通过 set() 方法设置新的布尔值。此外,它还提供了一些方法,例如 compareAndSet()、getAndSet() 等,用于实现比较并交换、获取并设置等特定的业务场景。

以下是一个简单的使用示例:

AtomicBoolean atomicBoolean = new AtomicBoolean(false);  // 初始化为 false
boolean oldValue = atomicBoolean.get();  // 获取当前值
boolean newValue = !oldValue;             // 计算新值
atomicBoolean.compareAndSet(oldValue, newValue);  // 比较并设置新值

在上述代码中,定义了一个初始值为 false 的 AtomicBoolean 对象。首先通过 get() 方法获取了当前的布尔值,然后计算出了新的布尔值,最后通过 compareAndSet() 方法进行比较并设置新的布尔值。

需要注意的是,在使用 AtomicBoolean 时,由于它是原子性的,因此不需要加锁,可以大大减少多线程中的竞争和阻塞,提高程序的性能。

  1. get()

    获取当前 AtomicBoolean 对象内部存储的布尔值。

     public boolean get() 
  2. set(boolean newValue)

    设置一个新的布尔值,并覆盖原有的布尔值。

     

    public void set(boolean newValue)
  3. getAndSet(boolean newValue)

    先获取当前的布尔值,然后设置一个新的布尔值,并返回原有的布尔值。

     

    public boolean getAndSet(boolean newValue)
  4. compareAndSet(boolean expect, boolean update)

    如果当前的布尔值等于 expect,则将它设置为 update,并返回 true;否则不修改布尔值,返回 false。

     

    public boolean compareAndSet(boolean expect, boolean update)
  5. weakCompareAndSet(boolean expect, boolean update)

    与 compareAndSet() 方法类似,但是却没有保证原子性。

     

    public boolean weakCompareAndSet(boolean expect, boolean update)
  6. toString()

    返回当前 AtomicBoolean 对象内部存储的布尔值的字符串形式。

     public String toString()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值