当前位置: 首页 > news >正文

网站安全建设的重要性工程造价信息价在什么网站查

网站安全建设的重要性,工程造价信息价在什么网站查,网站制作邯郸,湖南省重点建设项目办公室网站如果你了解了AtomicInteger的工作原理#xff0c;或者看了如下文章#xff0c;知道了AtomicInteger只能对当个int类型共享变量做cas的缺点。 CAS之AtomicInteger原理解析_z275598733的博客-CSDN博客 那么AtomicReference就是来解决这个问题的。原理很类似#xff0c;只是A…如果你了解了AtomicInteger的工作原理或者看了如下文章知道了AtomicInteger只能对当个int类型共享变量做cas的缺点。 CAS之AtomicInteger原理解析_z275598733的博客-CSDN博客 那么AtomicReference就是来解决这个问题的。原理很类似只是AtomicReference是对对象做cas操作。从一段AtomicReference类的方法调用代码开始来对源码做分析 public class Test {public static void main(String[] args) {A a1 new A(0, 0l);A a2 new A(1, 1l);AtomicReferenceA ar new AtomicReference(a1);ar.getAndSet(a2);System.out.println(ar.get().toString());//打印对象ai的内存结构需要引入jol-core工具包ClassLayout classLayout ClassLayout.parseInstance(ar);System.out.println(classLayout.toPrintable());} }Getter Setter AllArgsConstructor ToString class A{private int v1;private double v2; } 从 new AtomicReference(a1)进入先看静态代码块和构造方法再看 ar.getAndSet(a2) 做了什么。 public class AtomicReferenceV implements java.io.Serializable {...static {try {valueOffset unsafe.objectFieldOffset(AtomicReference.class.getDeclaredField(value));} catch (Exception ex) { throw new Error(ex); }}//与AtomicInterger类基本一致只不过类型由int变成了泛型Vprivate volatile V value;public AtomicReference(V initialValue) {value initialValue;}//与对象public final boolean compareAndSet(V expect, V update) {//this-当前AtomicReference对象valueoffest-相对AtomicReference的内存偏移量expectreturn unsafe.compareAndSwapObject(this, valueOffset, expect, update);}//具体实现需要进入到Unsafe类中public final V getAndSet(V newValue) {this-当前AtomicReference对象valueoffest-相对this对象的内存偏移量newValue-新对象return (V)unsafe.getAndSetObject(this, valueOffset, newValue);}... } 进入到Unsafe.getAndSetObject方法中 public final class Unsafe {...public final Object getAndSetObject(Object var1, long var2, Object var4) {Object var5;do {//通过对象中value相对偏移量获取内存中的value对象这里var5对其他线程是可见的, 如果不可见那么这个值的获取就可能非内存真实值。与Unsafe.getAndAddInt异曲同工var5 this.getObjectVolatile(var1, var2);//compareAndSwapObject的过程是原子性的将重新获取到的内存对象value与var5比较true则说明对象value并未被修改可以将原对象改成var4。区别于Unsafe.compareAndSwapInt, 这里比较对象} while(!this.compareAndSwapObject(var1, var2, var5, var4));return var5;}//native方法暂不深究public final native boolean compareAndSwapObject(Object var1, long var2, Object var4, Object var5);... } 以下是debug的信息 AtomicReference类对象ar的内存结构 总而言之AtomicReference可以保证对象的修改是线程安全的AtomicReference对比AtomicInteger 可以在共享对象内部维护多个共享变量但是ABA问题依然没有解决。
http://www.w-s-a.com/news/417102/

相关文章:

  • 工作网站建设中布线费用账务处理特色的重庆网站推广
  • dede 网站地图模板htm写作网站水平哪个最好
  • 服务器上的网站erp教学零基础入门
  • 网站建设58设计资料网站
  • 如何把动态图发网站做头像网页设计实训报告小结
  • 做简历用的网站wordpress版权说明
  • 网站关键词有哪些网站新闻前置审批
  • 怎么自己注册网站义乌做公司网站
  • 做哪种网站赚钱苏州住房城乡建设部网站
  • 镇江做网站学编程学哪一种比较好
  • 华美天一建筑公司网站赚钱做任务的网站有哪些
  • asp网站打开速度慢家乡网页设计教程
  • 网站 设计 深圳书店网站的建设
  • 北京网络营销推广培训哪家好南宁软件优化网站建设
  • flash网站引导页仓库管理系统源码
  • 济南网站制作公司排名营销型网站管理系统
  • 公司网站设计要多少钱用什么做网站的访问量统计
  • 湖北省住房和城乡建设厅门户网站沈阳网络平台推广公司
  • 河南平台网站建设公司网站如何提高转化率
  • 网站及推广wordpress 分享主题
  • 房产网站有哪些如何自己建一个微网站
  • 青岛市黄岛区城市建设局网站手机域名访问网站怎么进入
  • 网站模板 双语河南省建设人才信息网官网
  • 网站建设备案优化之看邹城网站开发
  • 网站方案书图书馆网站建设公司
  • 公司取名网免费版在线网站优化公司
  • dw怎么做秋季运动会网站九江集团网站建设
  • 响应式网站建设服务商wordpress 非小工具形式 微博秀
  • 网站安全检测漏洞扫描风险等级分布建设一个网站步骤
  • 摄影网站的意义开发企业小程序公司