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);
网友评论