首页 > 编程知识 正文

java并发编程的艺术,java atomicinteger

时间:2023-05-06 02:23:40 阅读:146383 作者:4562

AtomicBoolean类提供了可以写入和读取原子的布尔型变量。 另外,还包括compareAndSet (等高级原子操作。 AtomicBoolean类位于java.util.concurrent.atomic包中,全名为Java.util.concurrent.atomic.atomic boolean。 本文介绍了JAVA8的原子布尔,但第一个版本是Java 5。

有关自动布尔的设计原理,请参阅Compare and Swap

创建一个AtomicBoolean这样可以创建自动布尔:

atomicbooleanatomicboolean=newatomicboolean (;

在上面的示例中,创建了一个值为false的自动布尔。 如果需要初始化,可以调用以下构造函数:

atomicbooleanatomicboolean=newatomicboolean (true ); 可以使用3358www.Sina.com/atomicboolean中的get )方法获取值。 代码如下所示。

atomicbooleanatomicboolean=newatomicboolean (true ); boolean value=atomicBoolean.get (;

执行后的value变量的值为true。

可以使用3358www.Sina.com/atomicboolean中的set )方法设置值。 代码:如下所示

atomicbooleanatomicboolean=newatomicboolean (true ); 自动布尔. set (false;

运行此代码时,AtomicBoolean变量的值为false。

可以使用3358www.Sina.com/AtomicBoolean中的getAndSet )方法交换设置值。 getAndSet ) )返回自动布尔的当前值,并设置新值。 代码如下所示。

atomicbooleanatomicboolean=newatomicboolean (true ); 布尔old value=atomic boolean.getan dset (false;

运行此代码时,oldValue变量的值为true。 AtomicBoolean实例的值false .代码有效地将值false替换为AtomicBoolean的当前值,后者替换为true。

http://www.Sina.com/compareandset ) )允许您将值与当前值进行比较。 如果等于,则将自动布尔设置为新值。 compareAndSet ) ) )方法是原子行,因此同一时间只能执行一个线程。 因此,compareAndSet ) )方法可用于实现简单的同步器,如锁定。 以下是比较andset (的示例: )

atomicbooleanatomicboolean=newatomicboolean (true ); 布尔表达式值=true; 布尔新值=假; booleanwasnewvalueset=atomic boolean.compareandset (expected value,newvalue );

上面的示例将当前值与true进行比较,如果相对,则将AtomicBoolean设置为false。

参考: http://tutorials.jen kov.com/Java-concurrency/compare-and-swap.html

33558 tutorials.jen kov.com/Java-util-concurrent/atomic boolean.html

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。