AtomicBoolean
时间: 2023-11-02 20:05:23 浏览: 75
AtomicBoolean是一个线程安全的布尔类型的原子变量。它的内部实现原理与AtomicInteger类似。可以使用AtomicBoolean来实现多线程环境下的原子操作。
AtomicBoolean提供了无参和有参两个构造方法。无参构造方法默认值为false,有参构造方法可以指定初始值。
AtomicBoolean提供了一些常用的方法来更新和获取值。其中,compareAndSet(boolean expect, boolean update)方法用于对比并设置最新的值,当期望值与AtomicBoolean的当前值一致时,才执行新值的设置动作,设置成功则返回true,否则返回false。set(boolean newValue)方法用于设置最新的值,并使更新对其他线程立即可见。getAndSet(boolean newValue)方法返回AtomicBoolean的前一个布尔值,并设置新的值。
以下是一个使用AtomicBoolean的示例代码:
```java
import java.util.concurrent.atomic.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对象,并使用getAndSet方法将其值设置为true。然后,我们分别打印了原始值和当前值。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *3* [并发编程 — AtomicBoolean 详解](https://blog.csdn.net/small_love/article/details/111057268)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
- *2* [AtomicBoolean](https://blog.csdn.net/qq_37896194/article/details/118763679)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]
阅读全文