AtomicBoolean
时间: 2024-03-25 19:28:41 浏览: 10
AtomicBoolean是一个类,用于原子性地读写布尔类型变量。它的内部实现原理与AtomicInteger类似。
要创建AtomicBoolean对象,可以使用无参构造方法,默认值为false,也可以使用有参构造方法指定初始值。
AtomicBoolean提供了几个方法用于更新和获取值:
- compareAndSet(boolean expect, boolean update):对比并设置最新的值,只有当期望值与AtomicBoolean的当前值一致时才会将新值设置进去,设置成功返回true,否则返回false。
- weakCompareAndSet(boolean expect, boolean update):与compareAndSet方法类似,但是具有更弱的原子性保证。
- set(boolean newValue):设置最新的value值,对其他线程立即可见。
- getAndSet(boolean newValue):返回之前的布尔值,并设置新的值。
下面是一个示例代码,演示了AtomicBoolean的用法:
```
public class AtomicBooleanExample {
public static void main(String[] args) {
AtomicBoolean flag = new AtomicBoolean();
boolean andSet = flag.getAndSet(true);
System.out.println("原始值:" + andSet);
System.out.println("当前值:" + flag.get());
}
}
```
AtomicBoolean通常用于原子性地更新状态标识位,比如flag。它提供了一种解决方案,保证了对布尔类型变量的原子性读写操作。<span class="em">1</span><span class="em">2</span><span class="em">3</span>