当前位置: 首页 > 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.yutouwan.com/news/263936/

相关文章:

  • 公司介绍网站平台搭建设计论文1.简述网站建设的步骤
  • 零食网站制作的建设大纲义乌制作网站要多少钱
  • 齐河做网站最好的网站管理系统
  • 网站建设的重要网站顶部轮播怎么做的
  • 南通网站排名团队源码分享网
  • 网站运营包括哪些内容wordpress 插件 喜欢
  • 龙武工会网站怎么做wordpress主题之家
  • 企业免费建站网站桂林阳朔楼盘最新价格
  • 现在还有什么推广渠道淘客网站seo怎么做
  • 有域名怎么做公司网站宁波seo建站价格
  • android 移动网站开发wordpress 加载太多js
  • 定手机网站建设温州市建设小学网站
  • 保定企业建站系统模板网站建设企业谁家好
  • 广西网站建设网址赣州做网站什么价格
  • 福田做商城网站建设哪家公司便宜点怎样优化网站案例
  • 怎么做动漫照片下载网站怎么让wordpress
  • 网站备案号怎么查询新网站百度有审核期
  • 石家庄网站建设公司排名做销售的去哪个网站应聘
  • 数码电子产品网站建设策划书网站首页没收录
  • 可以做动漫的网站做网站的内容资源
  • app导航网站源码简单干净的网站
  • 汇川区住房和城乡建设厅网站WordPress设置腾讯企业邮箱
  • 户型图在哪个网站找哪里有手机网站制作公司
  • 微股东微网站制作平台公众号编辑器下载
  • 网站记录ip 修改有哪些网站建设工作
  • 企业网站建设目的选择题免费ppt素材库大全app
  • 怎么做百度网站验证有没有比WORDPRESS好的软件
  • 类似于美团的网站怎么做的个体户做网站是怎么备案
  • 建设工程用地批准手续在哪个网站江苏今天刚刚的最新新闻
  • 福田企业网站推广哪个好扁平化设计网站 国内