AtomicReference 原子引用
来源:互联网 发布:网站域名后缀 编辑:程序博客网 时间:2024/05/01 02:49
1.简介
赋值操作不是线程安全的。若想不用锁来实现,可以用AtomicReference<V>这个类,实现对象引用的原子更新。
使用场景:一个线程使用student对象,另一个线程负责定时读表,更新这个对象。那么就可以用AtomicReference这个类。java.util.concurrent.atomic.AtomicReference<V>
类的名字。
2.常用方法
java.util.concurrent.atomic.AtomicReference.AtomicReference(V initialValue)构造函数。
V java.util.concurrent.atomic.AtomicReference.get()
返回当前的引用。
boolean java.util.concurrent.atomic.AtomicReference.compareAndSet(V expect, V update)
如果当前值与给定的expect相等,(注意是引用相等而不是equals()相等),更新为指定的update值。
V java.util.concurrent.atomic.AtomicReference.getAndSet(V newValue)
原子地设为给定值并返回旧值。
void java.util.concurrent.atomic.AtomicReference.set(V newValue)
注意此方法不是原子的。不明白为什么要提供这个方法,很容易误用。
0 0
- AtomicReference 原子引用
- AtomicReference 原子变量
- 多线程 - 原子变量AtomicReference
- 原子变量(AtomicLong, AtomicInteger, AtomicReference)
- 原子变量(AtomicLong, AtomicInteger, AtomicReference)
- 原子变量(AtomicLong, AtomicInteger, AtomicReference)
- 原子变量(AtomicLong, AtomicInteger, AtomicReference)
- 原子变量(AtomicLong, AtomicInteger, AtomicReference)
- 原子变量(AtomicLong, AtomicInteger, AtomicReference)
- AtomicReference
- 无锁的对象引用:AtomicReference(转)
- JUC源码分析1-原子变量-AtomicInteger/AtomicBoolean/AtomicLong/AtomicReference
- 线程笔记-JUC包中的原子操作类(AtomicReference)
- 【实战Java高并发程序设计 2】无锁的对象引用:AtomicReference
- 【实战Java高并发程序设计 2】无锁的对象引用:AtomicReference
- AtomicReference(无锁的对象引用)与AtomicStampedReference与(带有时间戳的对象引用)
- 原子
- AtomicReference vs volatile
- hdu 1073 Online Judge
- python的类方法和静态方法
- Java 集合类
- 公司申请微信订阅号需要的材料及注意事项
- magento搬家总结--myself实时经验
- AtomicReference 原子引用
- python __init__.py
- C/CPP点滴积累—数组做函数参数退化为指针
- 每个Xcode开发者应该知道的七个使用技巧
- 关于MD5文件的校验
- iOS 判断iphone ipad 系统版本
- 正则化方法L1和L2
- 别人的故事
- Gitlab上如何给指定人员在指定项目里设置指定权限,给项目设置保护