美文网首页爱编程,爱生活
Java concurrent 之 AtomicBoolean

Java concurrent 之 AtomicBoolean

作者: 熬夜的猫头鹰 | 来源:发表于2018-06-16 23:28 被阅读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);
        
    

    相关文章

      网友评论

        本文标题:Java concurrent 之 AtomicBoolean

        本文链接:https://www.haomeiwen.com/subject/jfrieftx.html