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

营销型网站九大特点济南浩特元辰建设工程有限公司网站

营销型网站九大特点,济南浩特元辰建设工程有限公司网站,智慧旅游类网站开发商,旅游集团网站建设Unsafe类是CAS的核心,由于Java方法无法直接访问底层,需要通过本地方法(native)来实现,Unsafe类相当于一个桥梁。基于Unsafe类,可以直接操作特定的内存数据。 我们从上一篇说CAS基本原理的时候,有说到一个“资源”被100…

        Unsafe类是CAS的核心,由于Java方法无法直接访问底层,需要通过本地方法(native)来实现,Unsafe类相当于一个桥梁。基于Unsafe类,可以直接操作特定的内存数据。

        我们从上一篇说CAS基本原理的时候,有说到一个“资源”被100个线程每个线程累加100次,最终得到10000,该“资源”我们使用AtomicInteger来模拟的。这篇我们就从AtomicInteger更加深入探究CAS。

        

AtomicInteger的getAndIncrement()方法

    /*** Atomically increments by one the current value.** @return the previous value*/public final int getAndIncrement() {return unsafe.getAndAddInt(this, valueOffset, 1);}

        AtomicInteger的getAndIncrement()方法调用的是Unsafe类中的getAndAddInt()方法,其中的参数valueOffset是通过Unsafe实例的获取到当前AtomicInteger这个对象的value属性的内存偏移地址。

Unsafe的getAndAddInt()方法

public final int getAndAddInt(Object var1, long var2, int var4) {int var5;do {var5 = this.getIntVolatile(var1, var2);} while(!this.compareAndSwapInt(var1, var2, var5, var5 + var4));return var5;}

        参数var1就是当前需要Unsafe类操作的对象,在当前案例中就是AtomicInteger的一个实例。var2则是当前AtomicInteger实例(也就是var1)的value这个属性的变量的内存地址偏移量。var4就是案例中需要累加的值(案例中是1)。

        接下来是一个 do{ } while()循环,首先通过Unsafe类的getIntVolatile()方法(native方法)拿到当前操作的AtomicInteger的实例中的value属性的值,在使用Unsafe类的compareAndSwapInt()方法(native方法),将当前操作的AtomicInteger的实例中的value属性的原值和新值进行CAS。如果没有交换成功就一直重复上面的动作,如果交换成功就跳出当前循环。

      

AtomicInteger的get()方法

    /*** Gets the current value.** @return the current value*/public final int get() {return value;}

        等100个线程,每个都完成100次累加后(案例中使用到了CountDownLatch保证100个线程都操作完成)在调用AtomicInteger的get()方法。我们发现AtomicInteger的get()方法获取的就是value这个值,value属性是由volatile修饰的(在多线程环境下保证其可见性)。

        最终我们发现AtomicInteger实现多线程并发保证线程安全,是通CAS(compare and swap)+volatile来实现的,从而避免synchronized的高开销,提高执行效率。

http://www.yayakq.cn/news/808874/

相关文章:

  • 泰州网站制作方案定制如何编程写代码
  • 中铁建设中南公司官方网站国内怎么打开WordPress网站
  • 响应式网站 乐云seo品牌国外教做美食网站
  • 网页设计师考证多少钱鄞州seo服务
  • 台州企业网站公共建设工程中心网站
  • 下厨房网站学做蒸包视频网站jianshe
  • 做会计要经常关注哪些网站医疗网站优化
  • 渝中网站建设漳浦网站设计
  • 广州网站设计公司vi设计公司阿里巴巴官网电脑版登录入口
  • 网站导航栏怎么做简单高校门户网站的建设
  • 如何购买网站长沙房地产市场情况分析
  • 英文网站营销做网站先要学
  • 泸州网站seo哈尔滨关键词排名首页
  • 手机网站开发需求文档网站建设的行业资讯_
  • 电子商务类网站可做长图的网站
  • 网站开发运行环境怎么写龙岩网站设计理念
  • 中卫网站建设哪家好在网上如何找做网站的人
  • 做推广网站的文章术语wordpress 显示点击数
  • 精湛的网站建设沈阳微信网站
  • 毕业设计做音乐网站可以吗专注东莞微信网站建设
  • 甘肃建设网站pc网站直接转换成移动端的网站
  • 手机360网站seo优化上海企业咨询公司
  • 网站建设模板套用网站怎么更新文章
  • 做公司企业网站网站上传的流程
  • 能够做代理的网站有哪些问题做网站后台指的那
  • 网站建设 案例创新驱动发展战略的内容
  • 网站建设需要营业执照吗赚钱游戏排行榜第一名
  • 汕头网站建设方案优化服务外包主要做什么
  • 网站打不开 别人能打开免费查企业信息的平台
  • 餐饮营销网站建设做网站的是怎么赚钱