并发编程-concurrent指南-原子操作类-AtomicBoolean
类AtomicBoolean
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQQAAABDCAIAAAD1QOw9AAAIpElEQVR4nO2dPW4rIRDHOUcuwR1yB5f0aXKMFChynyZl6iBFPoFPYIkip4gty5JLXgHLDjDDLvb6a9/8ZD3ZLDuwzvxhwDtvhWMYxjnnnLh1BxjmXmAxMEyAxcAwgYnEYI2xlaNaaeSwUUJI7MBUEO1eGqWUEEJrfbW2pJTjK2dM0g1r7dUu+XJM8F0YJUinNuHbRw8bJYQy53egtd1LE5oe56Bn4v1bKdVU3xjjGoVEYYyJumIxOOecUTWvs1rexClv0q61VkoppUQHXaXUdURCAcXgh/NJJgetNYshwGKIaK211tDn+v5Ye7UZg6IUwyT9ma0YrJZCCGW6UKMLZZJwKI2NjJLaxvq5ByJOSYcxvnXYbp1KfaRdUDtr24BwGh6hyimUUsYYHzxA5yiDdSgVGM1H7/TTi/8XVrDWuqH4xHtnJGsIhkmD3Rg85GgxwG7AWC5OStkhX9/Pn9n1XgF8ZjAK+JZRQALAH8AHo6SUSH0PNUKX5VbLeO6Ycb1evyhJemYUUA+8MLjspsppvOehgy41EsO4P3qDAx7j/V4pVbov6oW+0DeUVcjW0PBEqhv1Q4Pd8DXjJcRvKXq5Nx49PvbQWou2dTlIMYBhtncqWgywfvqpQQyFjAYYqF+Xk9USioFc47f0KBvwRBqOj1SIHxSttXGLxnuSMcY7x6AYKgMqlBPUzGA30EP1bmQLp/ILgedmYvA9zCR0aaYSA3SZ3AlbxNC0uzRQvxKehdk5kyxSSpdjwL+rdwXouKgY/N+7dDVjzJliQHuYzS2xrUo3KofGdAMdHWCMl0l3ZmI4Z2ZQ+ZKz1vmB+nVRJjND1epAOcDvI/n3pX9ceWboO25MtI+KQWt9hZmBuuQHmBlgLA6XzWBlABfQ/cBptcxddPSaIfnlgfTWsfVz+zDmsVoKoYzV2jjnjIJn9tKmyingX64cUKETSCmziNx7UrlmOEEMMMT3RrK2oKuJNHYvu1E/VOlGVlOk6wcYnoWpVym0h7cXg9JdeJBFQDHEABtKRuObSXDzJjlChyv9kXHBOlqfajepDHYJ0vpwzYyXo8QNEO8T2d/YU24KleWxPtxRyXBYpDFyeypjsBv1Q9m2lcAW5bDbZXm0ENUeP6I2L8eYMIlh/gvI3xnExW6VYJj7hO9aZZgAi4FhAiwGhgmwGBgmwGJgmACLgWECLAaGCdy1GLLkmCY2y4/F0/vi6X3xsgal69Wmft767en97fvkZpkH5l7F4G+cOPVnv83yY/H8491+9fL+uvz1bxZPH58sBoZgSjEYPWmS5en3hKzfoNNvfl6fvlbOOedWL4NimIDV8ufyjTDTM50YJs84PlkM319xWnDOOff7+RwG+2uIYfPz+sxieEhIMcD7U7uy7qZPZbq3/lh6D2oa3ZR2uhxri90W29tSKk+fiwyILhcDjJQ+PjfrN7+WKEKmbpmRlONrD1jeTTs+xFqAF4dbjwUuhiQnIRmh4/hfZARjMwNlB/53ArAOzE9IchVacpHhgsEDxfD63PluoZmuci+GzfKj18D3V3wPm9gsP7zx7hyeGR4VVAxZmgyS92ZKh8T/LwrcTpaMjxYnn5pykWszAxyt12/9oA4rRzH8fj7DCrF+uibJYDE8LKgY8rAHyRYuo/nBjGNgp1kMruXO8twdqTXD7+cz4tOgTh72LHoxICoiWmcehjEzQ4pRUlt8GhiYGaCNdjEMlveM3E1qnRnoEze/vVUWw8MyYs2QZALH94Xv9wUhsbhihxADjIZCknLZgzG5yDBSijGSf5/E/emauKtDrBnc+q17D+24zc9r8rteFMPv5xKxz9wt5G4SCHF6948f0ZgF/W/yaDtS2+wDOCik1v0quykX2YPuAq2WP5vvr1BOjN/Z9uvq5b3YNUrLCzvdoWv8psFMyL3+An1d+tkDxFTM/waLwTnnXJwuWAn/MSwGhgnMUAyLfD/0xq9bfx/MWGYoBoY5DRYDwwRYDAwTYDEwTIDFwDCBmhgme07zjZ7HPAUHJf5E95L6eI4to/6E3Dd8EXavsBab7SCWD9XnduPtzp4hMZz5nw/f9HnMZ3PUcgduoZpCDOowruquIr8GO1Q3xJZ4bnet3dlzjTDpVo++PTcn2+5l4nNHrU93wVPa19sLOaVRhBgu3O6dM18xnN+q3UuxO29mPAsWw5UhxICEN/6eav88H6mNv49Uaks+N9qBM2vPe4Y3s2L2ifqVXOpaTnbTc52t3lIxgz8kRB+xdCVbbWO80fkcFX7YvYxrkmIZgDglYceofmGTHCXsG7XVNi6HcmGgYiivd37UZgbkAYHef7q0g5iJQD03GrdD5UbT9ltzqfFWXVsudcdRy9z/rN72PmF20D+M2mrtS45a/qU9ypzsoIAjGvWXjSLUCF2Uw7XNQQn4Hrdv1FbGU8wu02HZbuV650SjGDrfj2kGUQzo00Hxz1RuNGm/NZcabzXUOTF2OmoZB8VkYZ36X211Ww8/rN6eLoawmEm8v2I/FV7Sf9w+fb1z4iZiIHKjSfutudR4q305Hs0VmH16fnSCZL9ViD+RiKHmjlTY41+nisGTT0QV+2knj1pu079XOYOR1zsn7mFmGLTfmkuNt1o9GaPcTQoDZDZSZlZHi8HuJYhPzpgZfLt9IGf03lbtp51snRlmy2RiQJ8bjduhcqNp+6251GmrfU52Yy71QcGlAoiVkxjaHVS2ZhgpBhis270Uf8oku7fjxZCURA3T9mEsl14LaZ+63jkxsJuUBjEC7BrFDR9lHPncaPI50EhudM0+Vr+eSw1POfG5znHpjO72gA2cXdefLQgkUkmQ4QowbnbxUGoqFSRiJw9j+imCsG90+JhdF9kudr3zY5rfGfi50cwMmEAM/NxoZh7wXasME2AxkKSbifzKX7f++0wPi4FhAiwGhgmwGBgmwGJgmACLgWECLAaGCbAYGCbAYmCYwD+1hIJH5lhbTgAAAABJRU5ErkJggg==" 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(… ...
随机推荐
- HTML5 课程
http://www.w3school.com.cn/html5/html_5_geolocation.asp HTML5 教程 HTML5 教程 HTML5 简单介绍 HTML5 视频 HTML5 ...
- String 源码分析
Java 源码阅读 - String String 类型看起来简单,实际上背后的复杂性基本可以涵盖了整个 Java 设计,涉及到设计模式(不可变对象).缓存(String Pool 的理念).JVM( ...
- 【msdn wpf forum翻译】TextBlock等类型的默认样式(implicit style)为何有时不起作用?
原文:[msdn wpf forum翻译]TextBlock等类型的默认样式(implicit style)为何有时不起作用? 原文链接:http://social.msdn.microsoft.co ...
- C#WebBroswer控件的使用
在WebBroswer中可以嵌入一个网页文件,通过Url属性绑定. URI,统一资源标识符,用来唯一的标识一个资源. URL,统一资源定位器,它是一种具体的URI,即URL可以用来标识一个资源. 它包 ...
- 用Delphi开发视频聊天软件
摘要:目前网上视频聊天软件.视频会议软件.可视IP电话软件随处可见,你是否想自己做一个玩玩?其实这类软件无非是视频加上网络而建成的.如果熟悉视频捕捉和网络传输技术,根本就难不倒你.微软为软件开发人员提 ...
- MSYS2开发环境搭建(无幻的博客,编译OpenSSL,可使用pacman升级)
MSYS2开发环境搭建 软件安装 下载msys2-x86_64软件包,双击安装到某根目录下,比如D:\msys64. pacman是MSYS2自带的软件管理工具: 可通过修改msys64\etc\pa ...
- CheckSynchronize实现的不必要的复杂
在system.classes单元中,CheckSynchronize在ThreadLock上持续调用TMonitor的Exit和Enter以保护SyncList. 因为代码做的第一件事是换出Sync ...
- qt+opencv对两幅图片进行融合
本文博客链接:http://blog.csdn.net/jdh99,作者:jdh,转载请注明. 源代码: #include "widget.h" #include "ui ...
- 沙漏集合 good
曾经的高考状元,如今都过得怎么样呢?http://www.toutiao.com/a6428794132465975554/ 你可知道,古代女人为什么不能当官——笑昏我了http://tieba.ba ...
- vc++的学习目的
vc++支持多种编程方式,从结构化的编程,面向对象编程,泛型编程,com组件编程. 我想学习vc++的原因是它更接近底层.非常的高效,希望之后用它写出非常简洁高效的代码.