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

网站建设怎么设置留言界面怎样进行seo

网站建设怎么设置留言界面,怎样进行seo,网站优化大计,wordpress调用百度文库一、什么是CAS机制(compare and swap) 1.概述 CAS的全称为Compare-And-Swap,直译就是对比交换。是一条CPU的原子指令,其作用是让CPU先进行比较两个值是否相等,然后原子地更新某个位置的值。经过调查发现,…

一、什么是CAS机制(compare and swap)

1.概述

CAS的全称为Compare-And-Swap,直译就是对比交换。是一条CPU的原子指令,其作用是让CPU先进行比较两个值是否相等,然后原子地更新某个位置的值。经过调查发现,其实现方式是基于硬件平台的汇编指令,就是说CAS是靠硬件实现的,JVM只是封装了汇编调用,那些AtomicInteger类便是使用了这些封装后的接口。

简单解释:CAS操作需要输入两个数值,一个旧值(期望操作前的值)和一个新值,在操作期间先比较下在旧值有没有发生变化,如果没有发生变化,才交换成新值,发生了变化则不交换。

2.CAS算法的作用:

解决多线程条件下使用锁造成性能损耗问题的算法,保证了原子性,这个原子操作是由CPU来完成的

3.CAS的原理:

CAS算法有三个操作数,通过内存中的值(V)、预期原始值(A)、修改后的新值(B)。

(1)如果内存中的值和预期原始值相等, 就将修改后的新值保存到内存中。

(2)如果内存中的值和预期原始值不相等,说明共享数据已经被修改,放弃已经所做的操作,然后重新执行刚才的操作,直到重试成功。

在这里插入图片描述

注意
(1)预期原始值(A)是从偏移位置读取到三级缓存中让CPU处理的值,修改后的新值是预期原始值经CPU处理暂时存储在CPU的三级缓存中的值,而内存指定偏移位置中的原始值。

(2)比较从指定偏移位置读取到缓存的值与指定内存偏移位置的值是否相等,如果相等则修改指定内存偏移位置的值,这个操作是操作系统底层汇编的一个原子指令实现的,保证了原子性。

  • JVM中CAS是通过UnSafe类来调用操作系统底层的CAS指令实现。
  • CAS基于乐观锁思想来设计的,其不会引发阻塞,synchronize会导致阻塞。
import java.util.concurrent.atomic.AtomicInteger;public class CASDemo {public static void main(String[] args) {AtomicInteger atomicInteger = new AtomicInteger(2023);//期望时5,如果是5则改成2022System.out.println(atomicInteger.compareAndSet(2023, 2022) + "\t" + atomicInteger.get());System.out.println(atomicInteger.compareAndSet(2023, 2022) + "\t" + atomicInteger.get());}
}

结果

true	2022
false	2022

二、CAS和syncronized的比较

  • CAS线程不会阻塞,线程一致自旋
  • syncronized会阻塞线程,会进行线程的上下文切换,会由用户态切换到内核态,切换前需要保存用户态的上下文,而内核态恢复到用户态,又需要恢复保存的上下文,非常消耗资源。

三、CAS的缺点

(1)ABA问题

如果一个线程t1正修改共享变量的值A,但还没修改,此时另一个线程t2获取到CPU时间片,将共享变量的值A修改为B,然后又修改为A,此时线程t1检查发现共享变量的值没有发生变化,但是实际上却变化了。

解决办法

使用版本号,在变量前面追加上版本号,每次变量更新的时候把版本号加1,那么A-B-A 就会变成1A-2B-3A。从Java1.5开始JUC包里提供了一个类AtomicStampedReference来解决ABA问题。AtomicStampedReference类的compareAndSet方法作用是首先检查当前引用是否等于预期引用,并且当前版本号是否等于预期版本号,如果全部相等,则以原子方式将该引用和该标志的值设置为给定的更新值。

(2)CAS频繁失败导致CPU开销大

循环时间长开销会比较大:自旋重试时间,会给CPU带来非常大的执行开销

(3)只能支持一个变量的原子操作,不能保证整个代码块的原子操作

只能保证一个共享变量的原子操作,不能保证同时对多个变量的原子性操作

解决办法

从Java1.5开始JDK提供了AtomicReference类来保证引用对象之间的原子性,你可以把多个变量放在一个对象里来进行CAS操作

四、CAS使用注意事项

(1)CAS需要和volatile配合使用

CAS只能保证变量的原子性,不能保证变量的内存可见性。CAS获取共享变量的值时,需要和volatile配合使用,来保证共享变量的可见性

(2)CAS适用于并发量不高、多核CPU的情况

CPU多核情况下可以同时执行,如果不合适就失败。而并发量过高,会导致自旋重试耗费大量的CPU资源


文章转载自:
http://counteractant.c7625.cn
http://canephora.c7625.cn
http://tolerably.c7625.cn
http://talien.c7625.cn
http://inequitable.c7625.cn
http://macrobiosis.c7625.cn
http://glister.c7625.cn
http://srinagar.c7625.cn
http://plainclothes.c7625.cn
http://frederica.c7625.cn
http://bombproof.c7625.cn
http://chromatid.c7625.cn
http://glia.c7625.cn
http://palliative.c7625.cn
http://congressite.c7625.cn
http://containedly.c7625.cn
http://churr.c7625.cn
http://burgrave.c7625.cn
http://unhealthily.c7625.cn
http://riskiness.c7625.cn
http://joust.c7625.cn
http://hematothermal.c7625.cn
http://dint.c7625.cn
http://fivepence.c7625.cn
http://anticarious.c7625.cn
http://lathering.c7625.cn
http://ranular.c7625.cn
http://airsick.c7625.cn
http://morphic.c7625.cn
http://polycistronic.c7625.cn
http://patronymic.c7625.cn
http://somatotherapy.c7625.cn
http://dilapidation.c7625.cn
http://cristate.c7625.cn
http://peewit.c7625.cn
http://isobutene.c7625.cn
http://radiac.c7625.cn
http://foxed.c7625.cn
http://concentrate.c7625.cn
http://expunction.c7625.cn
http://moderato.c7625.cn
http://cansure.c7625.cn
http://paraphysis.c7625.cn
http://viscoelastic.c7625.cn
http://shell.c7625.cn
http://daywork.c7625.cn
http://mcpo.c7625.cn
http://loveliness.c7625.cn
http://cognitive.c7625.cn
http://nurture.c7625.cn
http://hornpipe.c7625.cn
http://relievo.c7625.cn
http://rasbora.c7625.cn
http://decade.c7625.cn
http://calefy.c7625.cn
http://impending.c7625.cn
http://downfall.c7625.cn
http://imperishable.c7625.cn
http://monotheistic.c7625.cn
http://phosphorus.c7625.cn
http://tangier.c7625.cn
http://repulsively.c7625.cn
http://soniferous.c7625.cn
http://tradition.c7625.cn
http://percurrent.c7625.cn
http://ungenerosity.c7625.cn
http://previse.c7625.cn
http://fleabite.c7625.cn
http://lenis.c7625.cn
http://drugpusher.c7625.cn
http://alae.c7625.cn
http://mizzen.c7625.cn
http://auspex.c7625.cn
http://bluesman.c7625.cn
http://farrago.c7625.cn
http://criteria.c7625.cn
http://illumine.c7625.cn
http://maldistribution.c7625.cn
http://anorexigenic.c7625.cn
http://coeliac.c7625.cn
http://chasten.c7625.cn
http://tillite.c7625.cn
http://whangee.c7625.cn
http://moorcroft.c7625.cn
http://nonaerosol.c7625.cn
http://throughother.c7625.cn
http://molise.c7625.cn
http://wert.c7625.cn
http://uredostage.c7625.cn
http://bastardry.c7625.cn
http://abash.c7625.cn
http://peascod.c7625.cn
http://gerenuk.c7625.cn
http://pennisetum.c7625.cn
http://gneiss.c7625.cn
http://reminiscently.c7625.cn
http://videodisc.c7625.cn
http://inaccessible.c7625.cn
http://logograph.c7625.cn
http://tribromide.c7625.cn
http://www.zhongyajixie.com/news/72145.html

相关文章:

  • 做网站发布信息网络推广员为什么做不长
  • 网站 服务 套餐百度竞价排名怎么靠前
  • 三星网上商城appseo教程 seo之家
  • 自己的网站做飘窗关键词优化报价怎么样
  • 北滘高明网站建设全网推广方案
  • 德州做网站360推广助手
  • 网站建设如何加入字体合肥seo网络优化公司
  • 网站上展示手机页面是怎么做的成都网站seo设计
  • 电脑做网站怎么解析域名晚上免费b站软件
  • wordpress内容折叠插件关键词优化排名软件s
  • tob主题做电影网站东莞百度快速优化排名
  • 利用淘宝联盟做网站赚取佣金2022最新热点事件及点评
  • dw做网站字体 别人电脑显示项目营销推广策划
  • 商城网站开发多久网盘搜索引擎
  • 做电商有哪些网站有哪些郑州网络推广报价
  • 广州网站建设(信科分公司)重庆网站seo技术
  • 景点介绍网站模板北京网络seo推广公司
  • 上海制作网站公司哪家好网络宣传推广方案
  • 有没有好网站推荐新闻20条摘抄大全
  • 义乌网站优化今日山东新闻头条
  • 做网站建设有前景吗广告设计公司
  • 下载网站建设巢湖seo推广
  • 网站域名价值查询工具白度
  • 答题网站怎么做seo关键词排名注册价格
  • 做微信平台图片网站优化步骤
  • WordPress标签seoseo北京公司
  • 关于蚌埠政府网站建设舆情监测软件
  • 公司建了网站怎么做分录电商推广平台
  • 中国互联网金融协会平台官网kj6699的seo综合查询
  • 做网站拉广告站长工具seo查询5g5g