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

建设银行网站怎样查询贷款信息查询代引流推广公司

建设银行网站怎样查询贷款信息查询,代引流推广公司,东莞品牌型网站建设价格,中韩双语网站制作价格CAS CAS是英文单词Compare And Swap的缩写,翻译过来就是比较并替换。 CAS机制当中使用了3个基本操作数:内存地址V,旧的预期值A,要修改的新值B。 更新一个变量的时候,只有当变量的预期值A和内存地址V当中的实际值相同…

CAS

CAS是英文单词Compare And Swap的缩写,翻译过来就是比较并替换。

CAS机制当中使用了3个基本操作数:内存地址V,旧的预期值A,要修改的新值B。

更新一个变量的时候,只有当变量的预期值A和内存地址V当中的实际值相同时,才会将内存地址V对应的值修改为B。

从思想上来说,Synchronized属于悲观锁,悲观地认为程序中的并发情况严重,所以严防死守。CAS属于乐观锁,乐观地认为程序中的并发情况不那么严重,所以让线程不断去尝试更新。

Synchronized关键字会让没有得到锁资源的线程进入BLOCKED状态,而后在争夺到锁资源后恢复为RUNNABLE状态,这个过程中涉及到操作系统用户模式内核模式的转换,代价比较高。

尽管Java1.6为Synchronized做了优化,增加了从偏向锁轻量级锁再到重量级锁的过度,但是在最终转变为重量级锁之后,性能仍然较低。

Java无法直接访问底层操作系统,而是通过本地(native)方法来访问。不过尽管如此,JVM还是开了一个后门,JDK中有一个类Unsafe,它提供了硬件级别的原子操作

这个类尽管里面的方法都是public的,但是并没有办法使用它们,JDK API文档也没有提供任何关于这个类的方法的解释。总而言之,对于Unsafe类的使用都是受限制的,只有授信的代码才能获得该类的实例,当然JDK库里面的类是可以随意使用的。

实现

CAS有三个操作数:内存值V、旧的预期值A、要修改的值B,当且仅当预期值A和内存值V相同时,将内存值修改为B并返回true,否则什么都不做并返回false

CAS也是通过Unsafe实现的,看下Unsafe下的三个方法:

public final native boolean compareAndSwapObject(Object paramObject1, long paramLong, Object paramObject2, Object paramObject3);
public final native boolean compareAndSwapInt(Object paramObject, long paramLong, int paramInt1, int paramInt2);
public final native boolean compareAndSwapLong(Object paramObject, long paramLong1, long paramLong2, long paramLong3);

例子:

在这里插入图片描述

使用场景

1、原子操作类

所谓原子操作类,指的是java.util.concurrent.atomic包下,一系列以Atomic开头的包装类。例如AtomicBooleanAtomicIntegerAtomicLong。它们分别用于Boolean,Integer,Long类型的原子性操作。

2、Lock类

3、轻量级锁在升级为重量级锁之前会有一个自旋并通过cas获取锁的过程

4、java.util.concurrent包完全建立在CAS之上

缺点

1.CPU开销较大

需要结合自旋使用,在并发量比较高的情况下,如果许多线程反复尝试更新某一个变量,却又一直更新不成功,循环往复,会给CPU带来很大的压力。

2.不能保证代码块的原子性

CAS机制所保证的只是一个变量的原子性操作,而不能保证整个代码块的原子性。比如需要保证3个变量共同进行原子性的更新,就不得不使用Synchronized了。

3.ABA问题

这是CAS机制最大的问题所在。

如果一个变量V初次读取的时候是A值,并且在准备赋值的时候检查到它仍然是A值,那我们就能说明它的值没有被其他线程修改过了吗?如果在这段期间它的值曾经被改成了B,然后又改回A,那CAS操作就会误认为它从来没有被修改过。这个漏洞称为CAS操作的"ABA"问题。

java.util.concurrent包为了解决这个问题,提供了一个带有标记的原子引用类"AtomicStampedReference",它可以通过控制变量值的版本来保证CAS的正确性。不过目前来说这个类比较"鸡肋",大部分情况下ABA问题并不会影响程序并发的正确性,如果需要解决ABA问题,使用传统的互斥同步可能回避原子类更加高效。

参考

Unsafe与CAS - 五月的仓颉 - 博客园 (cnblogs.com)

漫画:什么是CAS机制 - 开源最前线 - 博客园 (cnblogs.com)

http://www.dtcms.com/wzjs/219365.html

相关文章:

  • 做课件需要的纯音乐网站域名注册好了怎么弄网站
  • 中国营销传播网app免费seo教程分享
  • 合肥企业网站建设公司哪家好百度识图扫一扫
  • 怎么在日本做乐天网站供货商标题优化seo
  • 网站地图(build090324)是用什么做的收录网站是什么意思
  • 东莞建设工程交易中心门户网站企业推广方法
  • 横屏滚动网站北京专业seo公司
  • 机关单位网站安全建设北京网站优化企业
  • 医疗器械做网站到哪里先备案seo技术培训宁波
  • 淘宝客怎么做网站管理东莞发布最新通告
  • wordpress网站打开卡网址网域ip地址查询
  • 网站建设结论及体会青岛做网站推广公司
  • 常州网站建设公司方案中国新闻最新消息今天
  • 网站推广信息百度竞价排名算法
  • 做搬家网站的素材广告推广平台赚取佣金
  • 网站开发公司首页win7优化大师好不好
  • 网站生成小程序百度客服在哪里找
  • 中英文切换网站开发seo优化需要做什么
  • 嘉兴市住房和城乡建设局门户网站新闻摘抄
  • 做自己的游戏网站seo网站内容优化有哪些
  • 做视频网站用网站空间还是服务器十大短视频平台排行榜
  • 网站设计要考虑的因素一个完整的营销策划案范文
  • 如何建立视频号岳阳seo
  • 全自动建站系统源码建立网站的步骤
  • 武汉一医院网站建设公司网页怎么制作
  • 网站建设优化解析属性词 关键词 核心词
  • wordpress站点是什么意思佛山优化网站关键词
  • 那些网站是做俄罗斯鞋子金华网站推广
  • 免费建站的手机app百度问答seo
  • 淘宝网站建设分析全球新闻最新消息