并发编程-concurrent指南-原子操作类-AtomicBoolean
类AtomicBoolean
aaarticlea/png;base64,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" alt="" />
可以用原子方式更新的 boolean 值。有关原子变量属性的描述,请参阅 java.util.concurrent.atomic 包规范。AtomicBoolean 可用在应用程序中(如以原子方式更新的标志),但不能用于替换 Boolean。
2.构造函数
1.AtomicBoolean()
使用初始值 false 创建新的 AtomicBoolean。
2.AtomicBoolean(boolean initialValue)
使用给定的初始值创建新的 AtomicBoolean。
3.方法详解
get
public final boolean get()
- 返回当前值。
-
- 返回:
- 当前值
compareAndSet
public final boolean compareAndSet(boolean expect,
boolean update)
- 如果当前值
==预期值,则以原子方式将该值设置为给定的更新值。 -
- 参数:
expect- 预期值update- 新值- 返回:
- 如果成功,则返回 true。返回 False 指示实际值与预期值不相等。
weakCompareAndSet
public boolean weakCompareAndSet(boolean expect,
boolean update)
- 如果当前值
==预期值,则以原子方式将该值设置为给定的更新值。可能意外失败并且不提供排序保证,因此几乎只是
compareAndSet的适当替代方法。 -
- 参数:
expect- 预期值update- 新值- 返回:
- 如果成功,则返回 true。
set
public final void set(boolean newValue)
- 无条件地设置为给定值。
-
- 参数:
newValue- 新值
lazySet
public final void lazySet(boolean newValue)
- 最终设置为给定值。
-
- 参数:
newValue- 新值- 从以下版本开始:
- 1.6
getAndSet
public final boolean getAndSet(boolean newValue)
- 以原子方式设置为给定值,并返回以前的值。
-
- 参数:
newValue- 新值- 返回:
- 以前的值
toString
public String toString()
转自:https://www.cnblogs.com/tonylovett/p/5254630.html
并发编程-concurrent指南-原子操作类-AtomicBoolean的更多相关文章
- 并发编程-concurrent指南-原子操作类-AtomicInteger
在java并发编程中,会出现++,--等操作,但是这些不是原子性操作,这在线程安全上面就会出现相应的问题.因此java提供了相应类的原子性操作类. 1.AtomicInteger
- 并发编程-concurrent指南-原子操作类-AtomicLong
可以用原子方式更新的 long 值.有关原子变量属性的描述,请参阅 java.util.concurrent.atomic 包规范.AtomicLong 可用在应用程序中(如以原子方式增加的序列号), ...
- 并发编程-concurrent指南-原子操作类-AtomicReference
1.类 AtomicReference<V> public class AtomicReference<V>extends Objectimplements Serializa ...
- 并发编程-concurrent指南-线程池ExecutorService的实例
1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Override public void run() { ...
- 并发编程-concurrent指南-计数器CountDownLatch
java.util.concurrent.CountDownLatch 是一个并发构造,它允许一个或多个线程等待一系列指定操作的完成. CountDownLatch 以一个给定的数量初始化.count ...
- 并发编程-concurrent指南-ConcurrentMap
ConcurrentMap 是个接口,你想要使用它的话就得使用它的实现类之一. ConcurrentMap,它是一个接口,是一个能够支持并发访问的java.util.map集合: 在原有java.ut ...
- 并发编程-concurrent指南-Lock-可重入锁(ReentrantLock)
可重入和不可重入的概念是这样的:当一个线程获得了当前实例的锁,并进入方法A,这个线程在没有释放这把锁的时候,能否再次进入方法A呢? 可重入锁:可以再次进入方法A,就是说在释放锁前此线程可以再次进入方法 ...
- 并发编程-concurrent指南-Lock
既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐述.本文先从synchronized的缺陷讲起,然后再讲述java.util.concurr ...
- 并发编程-concurrent指南-线程池ExecutorService的使用
有几种不同的方式来将任务委托给 ExecutorService 去执行: execute(Runnable) submit(Runnable) submit(Callable) invokeAny(… ...
随机推荐
- 短暂聊天VS温馨提示
介绍 作为一个合作格该程序猿,使用的开发工具的熟练使用是我们必须掌握的. 而作为一名优秀的程序猿.我们不仅要能熟练的使用.并且还要去高效的使用. 而作为.Net平台专门定制的开发工具VS那当然是我们必 ...
- Qt中嵌入Directx11(有句柄就可以)
最近要做个游戏场景编辑器,需要directx11配合gui框架使用,所以简单地弄了一个directx11嵌入到Qt窗体中的程序. 1 建立工程 建一个Qt的工程,配置好directx的包含目录和库目录 ...
- .net core api 跨域
什么是跨域? 跨域,指的是浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的,是浏览器对JavaScript施加的安全限制. 所谓同源是指,域名,协议,端口均相同,不明白没关系,举个栗子: h ...
- dotnetspider
http://www.cnblogs.com/modestmt/p/5525467.html nuget :DotnetSpider2.Core
- 发布ActiveX控件
最近我们正在研究ActiveX技术.我们使用Delphi 5创建了一个具有ActiveForm的ActiveX控件应用程序.这个控件产生一个.OCX文件.现在,我们需要把这个控件部署在服务器端,在用户 ...
- 零元学Expression Blend 4 - Chapter 44 Flash做的到的Blend也可以!轻松制作拥有动画的MenuBar!(下)
原文:零元学Expression Blend 4 - Chapter 44 Flash做的到的Blend也可以!轻松制作拥有动画的MenuBar!(下) 抱歉久等了!!!! 终於到了动画MenuBar ...
- 使用WebBrowser并调用网页中的JS函数
在界面上拖入QAxWidget,注意这里不建议直接在UI设计界面指定控件,否则可能引起QtCreator崩溃 建议在代码中动态设置,如: ui->axWidget->setControl( ...
- win7访问部分win2003速度慢
解决办法: 关闭TCPIP协议的自动优化调整功能,在win7上,以管理员身份运行cmd,输入 netsh interface tcp set global autotuninglevel=disabl ...
- 2013年最流行的php框架盘点
2013年最流行的php框架盘点 PHP框架的发展背景 毫无疑问,Web框架技术在近几年已经得到了突飞猛进的发展和普及,在过去几年里,框架技术的普遍经历了比较大的完善过程,很大一部分可以归因于Ruby ...
- SYN5006型电机同步编码脉冲分配器
SYN5006型电机同步编码脉冲分配器 编码器信号分配板增量式编码器脉冲分配器使用说明视频链接: http://www.syn029.com/h-pd-81-0_310_13_-1.html 请将此链 ...