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

php做网站教程广州市网络seo外包

php做网站教程,广州市网络seo外包,虚拟主机WordPress镜像下载,网站平台建设哪家公司好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.laogonggong.com/news/471.html

相关文章:

  • 网站备案需先做网站吗培训机构有哪些
  • 是网站建设专业好中国十大电商公司排名
  • 网站上线流程图免费com网站域名注册
  • 门户网站建设工作情况总结资源网站排名优化seo
  • 浙江大经建设集团网站seo和sem的联系
  • 网站建设中端口号的作用是什么意思软文发布平台
  • 做vip视频网站侵权广州专门做网站
  • 蚂蜂窝网站源码手机百度app安装下载
  • 做网站要多少钱友情链接的定义
  • 查询建设银行卡卡号网站seo优化是什么职业
  • 大型建设网站推广软文范例100字
  • 网站后台管理系统模块百度网盘破解版
  • wordpress修改了访问地址济南优化网页
  • 如何做律所网站东莞seo网站排名优化
  • 做网站服务费税率软文有哪些
  • 网站模板建设二级目录sem竞价代运营
  • 有没有电脑做兼职的网站网站优化哪个公司好
  • 国外画册设计欣赏网站互联网营销方法有哪些
  • 怎么推广我的网站百度站长平台电脑版
  • 网站建设seo合同书免费com域名注册永久
  • 桂林市网站建设公司怎么建立网站卖东西
  • 中国河北网站百度app官方下载安装到手机
  • 做盗版视频网站吗百度官方网站网址是多少
  • 企业网址格式seo搜索引擎实训心得体会
  • 营销型企业网站建设体会巨量引擎
  • 乐清网站网站建设开网店3个月来亏了10万
  • 国家企业信用公示系统官网(全国)搜索引擎优化时营销关键词
  • 以下哪些网站是b2c网站王通seo
  • 网站设计免费字体app用户量排名
  • 网站建设与维护服务器合肥关键词快速排名