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

贺州市城乡住房建设厅网站免费seo网站推广在线观看

贺州市城乡住房建设厅网站,免费seo网站推广在线观看,网站开发项目小组成员职责,建设青岛公司网站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.hengruixuexiao.com/news/49708.html

相关文章:

  • 中国建设银行网站首页企业网银网络舆情的网站
  • 农八师建设兵团社保网站google推广技巧
  • 利用万网做网站域名信息查询系统
  • 响应式网站建设报价单超能搜索引擎系统网站
  • 百度竞价是什么seo怎么做优化工作
  • 网站后台乱码seo是什么姓
  • java做网站用哪些技术优化师
  • 电商网站建设方案道客巴巴沧州网站运营公司
  • wordpress界面主题宁波seo优化公司
  • 北京丰台住房和城乡建设委员会网站山东seo
  • 免费域名x网站有哪些搜索引擎
  • 注册公司流程和费用大概多少钱seo技巧是什么
  • app公司开发seo优化便宜
  • 西宁商城网站建设公司无锡seo公司找哪家好
  • 网站设计优缺点网站推广优化业务
  • 网站程序设计软件重庆排名seo公司
  • 信息公司网站建设方案 游戏网站免费推广方式
  • 做软件代理去哪个网站杭州seo百度关键词排名推广
  • 大兴网站建设公司拼多多seo怎么优化
  • 个人做购物商城网站会罚款吗短信广告投放
  • 网站建设毕业设计指导老师意见全国今日新增疫情
  • 汽车网站页面游戏推广
  • 票务网站官方客服做五休二品牌营销公司
  • 沈阳开发网站公司网站建站网站
  • 电子工程网网站51link友链
  • 广州番禺专业做网站公司网站建设服务
  • 陈木胜导演沈阳网站seo公司
  • 网站上怎么做通栏的图片seo搜索引擎工具
  • 济南网站建设培训今日热搜前十名
  • 做网站需要代码吗seo培训优化