1.类 AtomicReference<V>

public class AtomicReference<V>extends Objectimplements Serializable

  可以用原子方式更新的对象引用

2.构造函数详解

AtomicReference

public AtomicReference(V initialValue)
使用给定的初始值创建新的 AtomicReference。

参数:
initialValue - 初始值

AtomicReference

public AtomicReference()

使用 null 初始值创建新的 AtomicReference。

3.方法详解

get

public final V get()
获取当前值。

返回:
当前值

set

public final void set(V newValue)
设置为给定值。

参数:
newValue - 新值

lazySet

public final void lazySet(V newValue)
最终设置为给定值。

参数:
newValue - 新值
从以下版本开始:
1.6

compareAndSet

public final boolean compareAndSet(V expect,
V update)
如果当前值 == 预期值,则以原子方式将该值设置为给定的更新值。

参数:
expect - 预期值
update - 新值
返回:
如果成功,则返回 true。返回 false 指示实际值与预期值不相等。

weakCompareAndSet

public final boolean weakCompareAndSet(V expect,
V update)
如果当前值 == 预期值,则以原子方式将该值设置为给定的更新值。

可能意外失败并且不提供排序保证,因此几乎只是 compareAndSet 的适当替代方法。

参数:
expect - 预期值
update - 新值
返回:
如果成功,则返回 true。

getAndSet

public final V getAndSet(V newValue)
以原子方式设置为给定值,并返回旧值。

参数:
newValue - 新值
返回:
以前的值

toString

public String toString()
返回当前值的字符串表示形式。

覆盖:
Object 中的 toString
返回:
当前值的字符串表示形式。

转自:http://www.cnblogs.com/tonylovett/p/5254736.html

并发编程-concurrent指南-原子操作类-AtomicReference的更多相关文章

  1. 并发编程-concurrent指南-原子操作类-AtomicInteger

    在java并发编程中,会出现++,--等操作,但是这些不是原子性操作,这在线程安全上面就会出现相应的问题.因此java提供了相应类的原子性操作类. 1.AtomicInteger

  2. 并发编程-concurrent指南-原子操作类-AtomicLong

    可以用原子方式更新的 long 值.有关原子变量属性的描述,请参阅 java.util.concurrent.atomic 包规范.AtomicLong 可用在应用程序中(如以原子方式增加的序列号), ...

  3. 并发编程-concurrent指南-原子操作类-AtomicBoolean

    类AtomicBoolean

  4. 并发编程-concurrent指南-线程池ExecutorService的实例

    1.new Thread的弊端 执行一个异步任务你还只是如下new Thread吗? new Thread(new Runnable() { @Override public void run() { ...

  5. 并发编程-concurrent指南-计数器CountDownLatch

    java.util.concurrent.CountDownLatch 是一个并发构造,它允许一个或多个线程等待一系列指定操作的完成. CountDownLatch 以一个给定的数量初始化.count ...

  6. 并发编程-concurrent指南-ConcurrentMap

    ConcurrentMap 是个接口,你想要使用它的话就得使用它的实现类之一. ConcurrentMap,它是一个接口,是一个能够支持并发访问的java.util.map集合: 在原有java.ut ...

  7. 并发编程-concurrent指南-Lock-可重入锁(ReentrantLock)

    可重入和不可重入的概念是这样的:当一个线程获得了当前实例的锁,并进入方法A,这个线程在没有释放这把锁的时候,能否再次进入方法A呢? 可重入锁:可以再次进入方法A,就是说在释放锁前此线程可以再次进入方法 ...

  8. 并发编程-concurrent指南-Lock

    既然都可以通过synchronized来实现同步访问了,那么为什么还需要提供Lock?这个问题将在下面进行阐述.本文先从synchronized的缺陷讲起,然后再讲述java.util.concurr ...

  9. 并发编程-concurrent指南-线程池ExecutorService的使用

    有几种不同的方式来将任务委托给 ExecutorService 去执行: execute(Runnable) submit(Runnable) submit(Callable) invokeAny(… ...

随机推荐

  1. JAVA面试题解惑系列(七)——使用日期和时间

    日期和时间,不仅在考试面试题.处理的问题.似乎没有哪个项目能够避开它们.我们经常在处理用户的出生年月日.注冊日期,订单的创建时间等属性时用到,由此可见其重要性.  java.util.Date类  提 ...

  2. WPF LayoutTransform -改变布局

    LayoutTransform会影响布局,让grid显示分割线时候,可以看出 <Window x:Class="wpf180709.Window1" xmlns=" ...

  3. 读BeautifulSoup官方文档之html树的打印

    prettify()能返回一个格式良好的html的Unicode字符串 : markup = '<a href="http://example.com/">I link ...

  4. qt部分类释义

    如果测试错误,输出包含源码的警告信息 Q_ASSERT Qtime最后一次star()或restar()到现在的毫秒数 QTime::elapsed QMetaObject::invokeMethod ...

  5. WPF中的图像处理简介

    原文:WPF中的图像处理简介 和Winform中的GDI+相比,WPF提供了一组新的API用于显示和编辑图像.新API特点如下: 适用于新的或专用图像格式的扩展性模型. 对包括位图 (BMP).联合图 ...

  6. 同城快递公司Postmates近日完成1亿美元融资,美国外卖餐饮迎来一波融资热潮

    美国外卖市场尚未出现一家独大的巨头,一部分原因是与中国的外卖平台相比,在美国,外卖平台要克服的难题可能更多. 4个月之前才完成3亿美元融资的美国同城快递公司Postmates近日又完成1亿美元融资,估 ...

  7. Linux编译安装Qt 5.4.1(-qt-xcb是必须要指定的,卸载自带的gcc等)

    转载请注明文章:Linux编译安装Qt 5.4.1 出处:多客博图 很久不写文章了,过程很简单,但是操作很多,简单说吧. 前言: 操作系统CentOS 6.6,64位的. 1.安装gcc 4.8.4, ...

  8. apache本地服务器的配置流程

    安装Apache 一.目的: 1. 能够有一个测试的服务器,不是所有的特殊网络服务都能找到免费的! 二.为什么是 "Apache" 1. 使用最广的 Web 服务器 2. Mac自 ...

  9. Android零基础入门第11节:简单几步带你飞,运行Android Studio工程

    原文:Android零基础入门第11节:简单几步带你飞,运行Android Studio工程 之前讲过Eclipse环境下的Android虚拟设备的创建和使用,现在既然升级了Android Studi ...

  10. Android之Log封装

    blog原文地址:http://yuxingxin.com/2015/10/26/AndroidLog/ Github:https://github.com/fallblank/CodeEssay