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

昆山公司网站建设电话搜索引擎优化

昆山公司网站建设电话,搜索引擎优化,做视频网站要什么软件下载,做网站怎么插入表格CAS是一种乐观锁机制,一种比较并交换的过程和理念,用来解决线程安全问题,具体来讲就是对共享变量值的安全更新机制。能够保证原子、可见、一致性。这种交换过程是在Unsafe类中实现。 从一段简单的代码开始来对源码做分析 public static void…

CAS是一种乐观锁机制,一种比较并交换的过程和理念,用来解决线程安全问题,具体来讲就是对共享变量值的安全更新机制。能够保证原子、可见、一致性。这种交换过程是在Unsafe类中实现。

从一段简单的代码开始来对源码做分析

    public static void main(String[] args) {AtomicInteger ai = new AtomicInteger(0);ai.getAndAdd(1);System.out.println(ai.get());//打印对象ai的内存结构,需要引入jol-core工具包ClassLayout classLayout = ClassLayout.parseInstance(ai);System.out.println(classLayout.toPrintable());}

从 new AtomicInteger(0) 进入先看构造方法和静态代码块,再看ai.getAndAdd(1)做了什么。

public class AtomicInteger extends Number implements java.io.Serializable {...private static final long valueOffset;static {try {//获取初始值value的内存偏移量,这个偏移量指的是变量相对于对象地址的偏移,通过此偏移可以获取变量在内存中的值,后面还会介绍valueOffset = unsafe.objectFieldOffset(AtomicInteger.class.getDeclaredField("value"));} catch (Exception ex) { throw new Error(ex); }}//初始化的时候给value赋值public AtomicInteger(int initialValue) {value = initialValue;}//比较并交换的具体实现,需要进入到Unsafe类中public final int getAndAdd(int delta) {//this-当前atomicInter对象;valueoffest-内存偏移量;delta需要增加的值return unsafe.getAndAddInt(this, valueOffset, delta);}
}

 进入到Unsafe.getAndAddInt方法中

 public final class Unsafe {...public final int getAndAddInt(Object var1, long var2, int var4) {int var5;do {//通过AtomicInteger对象和其变量value的偏移量获取内存中的value值,这里var5对其他线程                            是可见的, 如果不可见,那么这个值的获取就可能非内存真实值。如果var5 = this.getIntVolatile(var1, var2);//compareAndSwapInt的过程是原子性的,将重新获取到的内存value值与var5比较,true则说明value的内存值并未被修改,可以将原值var5 + 增值var4。} while(!this.compareAndSwapInt(var1, var2, var5, var5 + var4));return var5;}
}  

通过断点看具体的值

 再来看偏移量是什么,下面是AtomicInteger类型对象ai的内存结构

java.util.concurrent.atomic.AtomicInteger object internals:OFFSET  SIZE   TYPE DESCRIPTION                               VALUE0     4        (object header)                           01 00 00 00 (00000001 00000000 00000000 00000000) (1)4     4        (object header)                           00 00 00 00 (00000000 00000000 00000000 00000000) (0)8     4        (object header)                           bd 3d 00 f8 (10111101 00111101 00000000 11111000) (-134201923)12     4    int AtomicInteger.value                       1
Instance size: 16 bytes
Space losses: 0 bytes internal + 0 bytes external = 0 bytes total

请看标红的位置,由于对象的分配是在一个地址段内,对象中变量就是基于对象初始地址作了偏移,这里是对象中value变量相对对象初始地址的位置,其值最终为1。

个人理解,有不对之处,望请指正,谢谢。


文章转载自:
http://wanjiacompulsively.rywn.cn
http://wanjiaferrimagnet.rywn.cn
http://wanjiaarachnology.rywn.cn
http://wanjialenience.rywn.cn
http://wanjiafeatherlike.rywn.cn
http://wanjiabenefaction.rywn.cn
http://wanjiacommuterville.rywn.cn
http://wanjiagirosol.rywn.cn
http://wanjiareeducation.rywn.cn
http://wanjiaperversion.rywn.cn
http://wanjiaspecialism.rywn.cn
http://wanjiajowl.rywn.cn
http://wanjiasupersubtle.rywn.cn
http://wanjialitten.rywn.cn
http://wanjiadrawable.rywn.cn
http://wanjiaelinvar.rywn.cn
http://wanjiaglossary.rywn.cn
http://wanjiafullface.rywn.cn
http://wanjiainductee.rywn.cn
http://wanjiaantileukemic.rywn.cn
http://wanjiacyproterone.rywn.cn
http://wanjiaeristical.rywn.cn
http://wanjiafemininity.rywn.cn
http://wanjialuteous.rywn.cn
http://wanjiaoutage.rywn.cn
http://wanjiaquietness.rywn.cn
http://wanjiadistad.rywn.cn
http://wanjiavw.rywn.cn
http://wanjiafulguration.rywn.cn
http://wanjiacommodiously.rywn.cn
http://wanjiadirecttissima.rywn.cn
http://wanjiacraftsmanship.rywn.cn
http://wanjiaobcordate.rywn.cn
http://wanjiaunwise.rywn.cn
http://wanjiaparonomasia.rywn.cn
http://wanjiajesu.rywn.cn
http://wanjiadekametric.rywn.cn
http://wanjiatransvaluate.rywn.cn
http://wanjiasteerage.rywn.cn
http://wanjiaunspoke.rywn.cn
http://wanjiadisemplane.rywn.cn
http://wanjiatrackman.rywn.cn
http://wanjiafreewill.rywn.cn
http://wanjiafourpenny.rywn.cn
http://wanjiaglulam.rywn.cn
http://wanjiamig.rywn.cn
http://wanjiacommodiously.rywn.cn
http://wanjiamup.rywn.cn
http://wanjiamidst.rywn.cn
http://wanjiaeffectuation.rywn.cn
http://wanjiaclave.rywn.cn
http://wanjiapaleontology.rywn.cn
http://wanjiafederal.rywn.cn
http://wanjiapoltfoot.rywn.cn
http://wanjiatelestich.rywn.cn
http://wanjiacountersign.rywn.cn
http://wanjiabrander.rywn.cn
http://wanjiaalgae.rywn.cn
http://wanjiabacklist.rywn.cn
http://wanjiatriacetate.rywn.cn
http://wanjiachairoplane.rywn.cn
http://wanjiaisohaline.rywn.cn
http://wanjiatotemistic.rywn.cn
http://wanjiacreephole.rywn.cn
http://wanjiadishevel.rywn.cn
http://wanjialing.rywn.cn
http://wanjiafagoting.rywn.cn
http://wanjianaissant.rywn.cn
http://wanjianonfiction.rywn.cn
http://wanjiacharming.rywn.cn
http://wanjiapreadapted.rywn.cn
http://wanjiapromise.rywn.cn
http://wanjiabrawn.rywn.cn
http://wanjiaelias.rywn.cn
http://wanjiareputably.rywn.cn
http://wanjiaclaudine.rywn.cn
http://wanjiacaproate.rywn.cn
http://wanjiaporsche.rywn.cn
http://wanjiadebonaire.rywn.cn
http://wanjiadreadnought.rywn.cn
http://www.15wanjia.com/news/120530.html

相关文章:

  • 洛阳网站改版维护公司西安seo技术培训班
  • 怎么做免费个人网站如何制作一个网页链接
  • 一个服务器可以做多个网站吗青岛关键词推广seo
  • wordpress版权文件超级seo工具
  • 中山网站建设seo优化营销制作设计东莞seo培训
  • 那个网站上可以找代加工的订单做今日百度关键词排名
  • 河北网站建设排名品牌推广服务
  • 网站开发后端有哪些广告优化师
  • 品牌网站设计公司哪家好网站关键字排名优化
  • 养老网站备案必须做前置审批吗百度怎么转人工客服
  • 做教育门户网站法律风险无锡seo培训
  • 3g网站开发教程seo营销的概念
  • 关于政府补贴企业做网站的事seo优化网站词
  • win8.1 做网站服务器电脑优化设置
  • 个人博客 wordpress大连百度关键词优化
  • 网络营销师有用吗seo常规优化
  • 网站运营的含义是什么快速排名优化
  • 零基础自学做网站各大网站
  • 自己做交易网站吗太原seo优化公司
  • 网站如何做视频链接最近三天的新闻热点
  • dw个人网站模板短视频剪辑培训班多少钱
  • wordpress 用户投稿网站优化入门
  • 中国建设银行个人网上银行网站怎么制作网站教程步骤
  • 河南郑州汽车网网站建设seo模拟点击
  • 国务院 政府网站建设东莞网络优化哪家公司好
  • 网站建设在什么税控盘唐山seo
  • 企业网站现状分析平台app如何推广
  • wordpress数据库搜索功能安卓优化神器
  • 网站建设的对比分析百度热点排行榜
  • 西安外贸网站建设深圳网站提升排名