文档章节

java原子更新器AtomicReferenceFieldUpdater的使用

kanlianhui
 kanlianhui
发布于 2016/08/05 09:49
字数 157
阅读 21
收藏 0

AtomicReferenceFieldUpdater 
    一个基于反射的工具类,它能对指定类的指定的volatile引用字段进行原子更新。(注意这个字段不能是private的) 

通过调用AtomicReferenceFieldUpdater的静态方法newUpdater就能创建它的实例,该方法要接收三个参数: 
    包含该字段的对象的类 
    将被更新的对象的类 
    将被更新的字段的名称 

下面是例子: 

public class App  
{  
    public static void main(String[] args) throws Exception  
    {  
        AtomicReferenceFieldUpdater updater=AtomicReferenceFieldUpdater.newUpdater(Dog.class,String.class,"name");  
        Dog dog1=new Dog();  
        updater.compareAndSet(dog1,dog1.name,"test") ;  
        System.out.println(dog1.name);  
  
    }  
  
}  
  
 class Dog  
{  
     volatile  String name="dog1";  
  
}

结果输出是: 
test

本文转载自:http://huangyunbin.iteye.com/blog/1944153

共有 人打赏支持
kanlianhui
粉丝 8
博文 80
码字总数 36440
作品 0
浦东
私信 提问
java.util.concurrent.atomic原子操作类包

这个包里面提供了一组原子变量类。其基本的特性就是在多线程环境下,当有多个线程同时执行这些类的实例包含的方法时,具有排他性,即当某个线程进入方法,执行其中的指令时,不会被其他线程打...

宋哥陈
2015/04/13
0
0
关于多线程编程您不知道的 5 件事

虽然很少有 Java™ 开发人员能够忽视多线程编程和支持它的 Java 平台库,更少有人有时间深入研究线程。相反地,我们临时学习线程,在需要时向我们的工具箱添加新的技巧和技术。以这种方式构建...

红薯
2011/03/13
848
7
Java并发--原子变量类的使用

注:本篇博客主要内容来源于网络,侵删~ 引言 我们假设你已经熟练掌握了CAS,原子变量类等的相关概念。这篇博客中,我们主要讨论原子变量类的使用。 原子变量类 原子变量类共12个,分4组: ...

珩翊
2018/10/03
0
0
Java多线程3-原子性操作类的使用

在java5以后,我们接触到了线程原子性操作,也就是在修改时我们只需要保证它的那个瞬间是安全的即可,经过相应的包装后可以再处理对象的并发修改,本文总结一下Atomic系列的类的使用方法,其...

香沙小熊
2018/11/26
0
0
Java Concurrency 基础知识

1.线程安全 a.无状态的类是线程安全的 b.所有状态都具有原子性的类是线程安全的 原子性:即对该类的操作是不被打断的,即使在多线程的环境下 如果一个类只有单个状态,推荐使用jdk中的jav...

boonya
2015/03/20
0
0

没有更多内容

加载失败,请刷新页面

加载更多

day22:

1、写一个getinterface.sh 脚本可以接受选项[i,I],完成下面任务: 1)使用格式:getinterface.sh [-i interface | -I ip] 2)当用户使用-i选项时,显示指定网卡的IP地址;当用户使用-I选项...

芬野de博客
28分钟前
1
0
Spring Cloud Alibaba基础教程:使用Nacos实现服务注册与发现

自Spring Cloud Alibaba发布第一个Release以来,就备受国内开发者的高度关注。虽然Spring Cloud Alibaba还没能纳入Spring Cloud的主版本管理中,但是凭借阿里中间件团队的背景,还是得到不少...

程序猿DD
32分钟前
2
0
Java并发编程:深入剖析ThreadLocal

ThreadLocal 的理解 ThreadLocal,很多地方叫线程本地变量,或线程本地存储。ThreadLocal为变量在每个线程中都创建了一个副本,每个线程可以访问自己内部的副本变量。===》解决的问题是线程间...

细节探索者
39分钟前
1
0
【Python3之异常处理】

一、错误和异常 1.错误 代码运行前的语法或者逻辑错误 语法错误(这种错误,根本过不了python解释器的语法检测,必须在程序执行前就改正) def test: ^SyntaxError: invalid...

dragon_tech
今天
2
0
编写可维护的 JavaScript

几乎每个程序员都有接手维护别人遗留项目的经历。或者,有可能一个老项目某一天又被重新启动。 通常情况下,接手老项目都会让人恨不得抛弃掉整个代码库从头开始。老代码凌乱、文档缺失、需要...

前端小攻略
今天
5
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部