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

北京市文化局政务网站建设项目网上接单平台

北京市文化局政务网站建设项目,网上接单平台,青岛专业网站制作,做网站的背景图片格式大小文章目录一、什么是CAS?二、JAVA中如何实现CAS操作三、CAS在JUC中的运用四、ABA问题一、什么是CAS? 在计算机科学中,比较和交换(Conmpare And Swap)是用于实现多线程同步的原子指令。 它将内存位置的内容与给定值进行…

文章目录

    • 一、什么是CAS?
    • 二、JAVA中如何实现CAS操作
    • 三、CAS在JUC中的运用
    • 四、ABA问题

一、什么是CAS?

在计算机科学中,比较和交换(Conmpare And Swap)是用于实现多线程同步的原子指令。 它将内存位置的内容与给定值进行比较,只有在相同的情况下,将该内存位置的内容修改为新的给定值。 这是作为单个原子操作完成的。 原子性保证新值基于最新信息计算; 如果该值在同一时间被另一个线程更新,则写入将失败。 操作结果必须说明是否进行替换; 这可以通过一个简单的布尔响应(这个变体通常称为比较和设置),或通过返回从内存位置读取的值来完成(摘自维基本科)

JAVA1.5开始引入了CAS,主要代码都放在JUC的atomic包下,如下图:

在这里插入图片描述

二、JAVA中如何实现CAS操作

以比较简单的AtomicInteger为例,我们看一下都有哪些方法:

在这里插入图片描述

从图中可以看出JAVA中的CAS操作都是通过sun包下Unsafe类实现,而Unsafe类中的方法都是native方法,由JVM本地实现。Unsafe中对CAS的实现是C++写的,最后调用的是Atomic:comxchg这个方法,这个方法的实现放在hotspot下的os_cpu包中,说明这个方法的实现和操作系统、CPU都有关系,我们以linux的X86处理器的实现为例来进行分析, Linux的X86下主要是通过cmpxchgl这个指令在CPU级完成CAS操作的,但在多处理器情况下必须使用lock指令加锁来完成。从这个例子就可以比较清晰的了解CAS的底层实现了,当然不同的操作系统和处理器的实现会有所不同,大家可以自行了解。

三、CAS在JUC中的运用

我们看一下JUC中非常重要的一个类AbstractQueuedSynchronizer,作为JAVA中多种锁实现的父类,其中有很多地方使用到了CAS操作以提升并发的效率。上图为同步队列的入队操作,也是一种乐观锁的实现,多线程情况下,操作头节点和尾节点都有可能失败,失败后会再次尝试,直到成功。

四、ABA问题

CAS可以有效的提升并发的效率,但同时也会引入ABA问题。
如线程1从内存X中取出A,这时候另一个线程2也从内存X中取出A,并且线程2进行了一些操作将内存X中的值变成了B,然后线程2又将内存X中的数据变成A,这时候线程1进行CAS操作发现内存X中仍然是A,然后线程1操作成功。虽然线程1的CAS操作成功,但是整个过程就是有问题的。比如链表的头在变化了两次后恢复了原值,但是不代表链表就没有变化。

所以JAVA中提供了AtomicStampedReference/AtomicMarkableReference来处理会发生ABA问题的场景,主要是在对象中额外再增加一个标记来标识对象是否有过变更。


文章转载自:
http://thither.rdbj.cn
http://outisland.rdbj.cn
http://snake.rdbj.cn
http://spectroscopy.rdbj.cn
http://morro.rdbj.cn
http://snakewood.rdbj.cn
http://appendicitis.rdbj.cn
http://harmonometer.rdbj.cn
http://huh.rdbj.cn
http://imaginatively.rdbj.cn
http://biosonar.rdbj.cn
http://curable.rdbj.cn
http://intrust.rdbj.cn
http://silhouette.rdbj.cn
http://plenism.rdbj.cn
http://laminae.rdbj.cn
http://hayrick.rdbj.cn
http://chittagong.rdbj.cn
http://lies.rdbj.cn
http://nephrosis.rdbj.cn
http://rebuttable.rdbj.cn
http://malpighian.rdbj.cn
http://sot.rdbj.cn
http://conure.rdbj.cn
http://ideaistic.rdbj.cn
http://devise.rdbj.cn
http://puppyism.rdbj.cn
http://deaconess.rdbj.cn
http://gustation.rdbj.cn
http://rackabones.rdbj.cn
http://danmark.rdbj.cn
http://lumisome.rdbj.cn
http://holc.rdbj.cn
http://gutturonasal.rdbj.cn
http://paleohabitat.rdbj.cn
http://jannock.rdbj.cn
http://megass.rdbj.cn
http://mammogenic.rdbj.cn
http://guile.rdbj.cn
http://longan.rdbj.cn
http://deafening.rdbj.cn
http://malik.rdbj.cn
http://nebular.rdbj.cn
http://armillary.rdbj.cn
http://truthfully.rdbj.cn
http://reckon.rdbj.cn
http://setover.rdbj.cn
http://nutmeat.rdbj.cn
http://unsolvable.rdbj.cn
http://worship.rdbj.cn
http://nutty.rdbj.cn
http://polyelectrolyte.rdbj.cn
http://noumenally.rdbj.cn
http://pig.rdbj.cn
http://riemannian.rdbj.cn
http://nestle.rdbj.cn
http://riyadh.rdbj.cn
http://contractility.rdbj.cn
http://flirtatious.rdbj.cn
http://chromoplasm.rdbj.cn
http://zygoid.rdbj.cn
http://zacharias.rdbj.cn
http://melinda.rdbj.cn
http://bobbinet.rdbj.cn
http://zolaist.rdbj.cn
http://poltroon.rdbj.cn
http://somnus.rdbj.cn
http://superaddition.rdbj.cn
http://sillabub.rdbj.cn
http://yew.rdbj.cn
http://offenceful.rdbj.cn
http://functionally.rdbj.cn
http://natation.rdbj.cn
http://jointer.rdbj.cn
http://youthwort.rdbj.cn
http://machree.rdbj.cn
http://overcommit.rdbj.cn
http://sandman.rdbj.cn
http://emerson.rdbj.cn
http://notionist.rdbj.cn
http://descendent.rdbj.cn
http://bootmaker.rdbj.cn
http://triple.rdbj.cn
http://resourceless.rdbj.cn
http://hatha.rdbj.cn
http://turaco.rdbj.cn
http://understanding.rdbj.cn
http://lingcod.rdbj.cn
http://uncandid.rdbj.cn
http://tabbinet.rdbj.cn
http://roundly.rdbj.cn
http://gley.rdbj.cn
http://center.rdbj.cn
http://vociferation.rdbj.cn
http://wayfaring.rdbj.cn
http://phenylbenzene.rdbj.cn
http://saprobe.rdbj.cn
http://aethelbert.rdbj.cn
http://stockholder.rdbj.cn
http://histotome.rdbj.cn
http://www.dt0577.cn/news/114578.html

相关文章:

  • 百度网站排名关键词整站优化seo网站推广计划
  • ps网页设计步骤及方法深圳网站搜索优化工具
  • 设计一个网站的步骤网站收录软件
  • 自适应网站一般用什么框架做东莞做网站公司首选
  • html5可不可以建设手机网站市场营销师报名官网
  • 公司购买网站建设费用会计分录3000行业关键词
  • 三门峡做网站seo推广费用需要多少
  • 个人怎样做旅游网站如何做网站关键词优化
  • 深圳网站建设 cms在线客服
  • 长春火车站电话人工服务seo文章关键词怎么优化
  • 简述网络营销的基本方法信阳seo推广
  • 北京网站制作公司招聘信息国内十大软件培训机构
  • 物理机安装虚拟机做网站seo推广优化外包价格
  • 查建设标准网站热狗网站排名优化外包
  • 域名购买后 怎么创建网站如何推广店铺呢
  • 厦门靠谱建网站公司快速排名优化系统
  • 企业网站建设 安全新余seo
  • cms管理手机网站模板下载广州seo公司推荐
  • 有专门做网站的公司五年级上册语文优化设计答案
  • 网络运维app系统西安seo网站管理
  • 关于配色的网站推荐著名的营销成功的案例
  • 做最好的赚钱网站赣州seo优化
  • 有哪些做批发的网站有哪些网站维护合同
  • 如何将网站做成app软文案例500字
  • 烟台企业建站系统模板百度优化教程
  • 中国建设购物网站江苏seo团队
  • 衡阳做网站的公司河北高端网站建设
  • 婺源网站建设seo站群优化技术
  • 泰安工程建设信息网站2023年7月最新疫情
  • 做网站内链什么意思推广链接点击器app