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

怎么注册自己的网站慈溪市网站开发

怎么注册自己的网站,慈溪市网站开发,个人可以建设网站吗不备案,装潢设计培训像synchronized这种独占锁属于悲观锁#xff0c;它是在假设一定会发生冲突的#xff0c;那么加锁恰好有用#xff0c;除此之外#xff0c;还有乐观锁#xff0c;乐观锁的含义就是假设没有发生冲突#xff0c;那么我正好可以进行某项操作#xff0c;如果要是发生冲突呢它是在假设一定会发生冲突的那么加锁恰好有用除此之外还有乐观锁乐观锁的含义就是假设没有发生冲突那么我正好可以进行某项操作如果要是发生冲突呢那我就重试直到成功乐观锁最常见的就是CAS。 我们在读Concurrent包下的类的源码时发现无论是ReenterLock内部的AQS还是各种Atomic开头的原子类内部都应用到了CAS最常见的就是我们在并发编程时遇到的i这种情况。传统的方法肯定是在方法上加上synchronized关键字:public class Test {public volatile int i;public synchronized void add() {i;} } 复制代码但是这种方法在性能上可能会差一点我们还可以使用AtomicInteger就可以保证i原子的了。 public class Test {public AtomicInteger i;public void add() {i.getAndIncrement();} }复制代码CAS源码分析获取偏移量valueOffsetpublic native long objectFieldOffset(Field var1);通过这个方法可以知道偏移量从jdk底层源码中获取。static {try {valueOffset unsafe.objectFieldOffset(AtomicInteger.class.getDeclaredField(value));} catch (Exception ex) { throw new Error(ex); } }复制代码然后再看看增加的方法public final int getAndAdd(int delta) {return unsafe.getAndAddInt(this, valueOffset, delta); }复制代码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; }复制代码我们看var5获取的是什么通过调用unsafe的getIntVolatile(var1, var2)这是个native方法具体实现到JDK源码里去看了其实就是获取var1中var2偏移量处的值。var1就是AtomicIntegervar2就是我们前面提到的valueOffset,这样我们就从内存里获取到现在valueOffset处的值了compareAndSwapIntvar1, var2, var5, var5 var4换成compareAndSwapIntobj, offset, expect, update比较清楚意思就是如果obj内的value和expect相等就证明没有其他线程改变过这个变量那么就更新它为update如果这一步的CAS没有成功那就采用自旋的方式继续进行CAS操作private volatile int value;和unsafe.getAndAddInt(this, valueOffset, delta); 可以看出compareAndSwapIntobj, offset, expect, update中的obj为AtomicInteger类型 AtomicInteger的value值为volatile类型在看do {var5 this.getIntVolatile(var1, var2);} while(!this.compareAndSwapInt(var1, var2, var5, var5 var4));这里是一个dowhile循环如果obj内的value和expect不相等 var5 this.getIntVolatile(var1, var2);一直会 执行即不断从内存中获取最新的值来与obj内的value进行比较直到相等为止。从这个字段可以看出复制代码CAS的缺点只能保证对一个变量的原子性操作长时间自旋会给CPU带来压力ABA问题
http://www.sadfv.cn/news/179737/

相关文章:

  • 杭州网站建设开发陕西省高速建设集团公司网站
  • 淘金网站建设推广yp77731域名查询
  • jquery 做网站一个网站3个相似域名
  • 网站开发的目的意义建设国家标准官方网站
  • 西宁网站建设开发宁波网站建设价格合理
  • php手机网站开发教程网站网站开发的公司
  • 你知道吗 网站辽宁建设工程信息网备案
  • 动易官方网站济南企业建设网站
  • html5旅游网站seo公司上海牛巨微
  • 织梦做的网站别人提交给我留的言我去哪里看国内新闻最新官方消息
  • 比较好的建立站点企业网站优化兴田德润
  • 手机制作钓鱼网站兰州网站建设和推广
  • 网站广告如何做网络优化器免费
  • 连锁店网站建设mysql导入wordpress
  • 房产网站建设接单网站上做旅游卖家要学什么软件
  • 企业网站备案要多少钱莱芜网络公司平台
  • 做餐饮要看的网站宜春的网站建设公司
  • 手机可做兼职的网站养育成本
  • 网站后台管理维护 不懂编程旅游网站开发公司
  • 为农村建设网站报告郑州不错的软件开发公司
  • 怎么查看网站百度快照网站建设方案总结评语
  • 网站建设的讲话稿网站服务器多少钱一年
  • 大型网站seo方案网址ip查询域名解析
  • 企业怎么做网站推广织梦网站打开空白
  • 装修网站是怎么建设的淄博高端网站建设
  • 网站建设的ppt模板建设银行网站登录不了
  • 科普网站建设自己做的网站加载速度慢
  • 建设网站需要做什么什么是网络营销啊
  • 常州装修网站建设公司重庆网站seo案例
  • 财务公司代理记账怎么收费淘宝怎么优化关键词步骤