爱编程,爱生活

Java concurrent 之 AtomicBoolean

2018-06-16  本文已影响9人  熬夜的猫头鹰

java concurrent 之 AtomicBoolean

tomicBoolean类提供了一个布尔变量,它可以被原子地读取和写入,并且还包含诸如compareAndSet()之类的高级原子操作。 AtomicBoolean类位于java.util.concurrent.atomic包中,因此完整的类名称为java.util.concurrent.atomic.AtomicBoolean。 本文介绍了Java 8中发现的AtomicBoolean版本,但第一个版本是在Java 5中添加的。

创建一个AtomicBoolean

AtomicBoolean atomicBoolean = new AtomicBoolean();

也可以初始化

AtomicBoolean atomicBoolean = new AtomicBoolean(true);

获取AtomicBoolean的值

AtomicBoolean atomicBoolean = new AtomicBoolean(true);
boolean value = atomicBoolean.get();

获取并且赋值

AtomicBoolean atomicBoolean = new AtomicBoolean(true);

boolean oldValue = atomicBoolean.getAndSet(false);

预期值比较并赋值

方法compareAndSet()允许您将AtomicBoolean的当前值与预期值进行比较,如果当前值等于预期值,则可以在AtomicBoolean上设置一个新值。 compareAndSet()方法是原子的,所以只有一个线程可以同时执行它。 因此,compareAndSet()方法可以用于实现类似锁的简单同步器。

AtomicBoolean atomicBoolean = new AtomicBoolean(true);

boolean expectedValue = true;
boolean newValue      = false;

boolean wasNewValueSet = atomicBoolean.compareAndSet(
    expectedValue, newValue);
    
上一篇下一篇

猜你喜欢

热点阅读