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

网站建设app开发销售好做吗孝感高新区建设局网站

网站建设app开发销售好做吗,孝感高新区建设局网站,免费网页模版下载,海口网站提升排名什么是原子操作不可被中断的一个或者一系列操作实现原子操作的方式Java可以通过锁和循环CAS的方式实现原子操作CAS( Compare And Swap ) 为什么要有CAS#xff1f;Compare And Swap就是比较并且交换的一个原子操作#xff0c;由Cpu在指令级别上进行保证。为什么要有CAS…什么是原子操作不可被中断的一个或者一系列操作实现原子操作的方式Java可以通过锁和循环CAS的方式实现原子操作CAS( Compare And Swap )  为什么要有CASCompare And Swap就是比较并且交换的一个原子操作由Cpu在指令级别上进行保证。为什么要有CAS因为通过锁实现原子操作时其他线程必须等待已经获得锁的线程运行完以后才能获得资源这样就会占用系统的大量资源CAS包含哪些参数CAS包含三个参数1、变量所在内存地址V2、变量对应的值A3、我们将要修改的值B。如果说V上的变量的值是A的话就用B重新赋值如果不是A那就什么事也不做操作的返回结果原值是多少。循环CAS在一个(死)循环【for(;;)】里不断进行CAS操作直到成功为止(自旋操作即死循环)。CAS实现原子操作的三大问题1、 ABA问题其他的线程把值改成了B很快改成了A原子操作的线程发现值是A就修改这样会有问题。解决ABA引入版本号1A-》2C-》3A2、 循环时间很长的话cpu的负荷比较大3、 对一个变量进行操作可以同时操作多个共享变量有点麻烦CAS线程安全(面试点)通过硬件层面的阻塞实现原子操作的安全原子更新基本类型类AtomicBoolean、AtomicInteger、AtomicLong、AtomicReference。AtomicInteger的常用方法如下·int addAndGet(int delta)·boolean compareAndSet(int expectint update)·int getAndIncrement() 原子递增但是返回的是自增以前的值incrementAndGet原子递增但是返回的是自增以后的值·int getAndSet(int newValue)packagecom.lgs.atomicint;importjava.util.concurrent.atomic.AtomicInteger;/*** lgs* 原子操作更新整型*/public classAtomicIntTest {static AtomicInteger ai new AtomicInteger(1);public static voidmain(String[] args) {System.out.println(ai.getAndIncrement());ai.incrementAndGet();System.out.println(ai.get());}}输出13原子更新数组类AtomicIntegerArrayAtomicLongArrayAtomicReferenceArrayAtomicIntegerArray类主要是提供原子的方式更新数组里的整型其常用方法如下。·int addAndGet(int iint delta)·boolean compareAndSet(int iint expectint update)数组通过构造方法传入类会将数组复制一份原数组不会发生变化。packagecom.lgs.atomicarray;importjava.util.concurrent.atomic.AtomicIntegerArray;/*** lgs* 原子操作更新数组*/public classAtomicArray {static int[] value new int[]{1,2};static AtomicIntegerArray ai newAtomicIntegerArray(value);public static voidmain(String[] args) {ai.getAndSet(0,3);System.out.println(ai.get(0));System.out.println(value[0]);}}输出31原子更新引用类型提供的类。·AtomicReference 可以解决更新多个变量的问题·AtomicStampedReference解决ABA问题 使用数字作为版本 关心得是有几个人改过·AtomicMarkableReference解决ABA问题 使用Boolean作为版本关心的是有没有修改过packagecom.lgs;importjava.util.concurrent.atomic.AtomicReference;/*** lgs* 原子操作更新引用类型即可以同时更新多个值*/public classAtomicRef {static AtomicReference userAtomicReference new AtomicReference();public static voidmain(String[] args) {User user new User(lgs,26);userAtomicReference.set(user);User updateUser new User(ll,27);userAtomicReference.compareAndSet(user,updateUser);System.out.println(userAtomicReference.get().getName());System.out.println(userAtomicReference.get().getOld());}static classUser{privateString name;private intold;public User(String name, intold) {this.name name;this.old old;}publicString getName() {returnname;}public intgetOld() {returnold;}}}输出ll27原子更新字段类Atomic包提供了以下3个类进行原子字段更新。·AtomicReferenceFieldUpdater·AtomicIntegerFieldUpdater·AtomicLongFieldUpdater违反了面向对象的原则一般不使用
http://www.huolong8.cn/news/66034/

相关文章:

  • pc网站怎么做适配企业网站做app
  • 国内哪家网站建设公司好网站哪家公司做的好
  • 机械设计制造及其自动化圳建设网站临平网站建设
  • 评析网站建设报价单wordpress自动生成百度地图
  • 盐城城乡建设局网站上海做网站 公司
  • 上海seo推广外包优化型网站建设的基本要求
  • 杭州品牌网站设计制作公司甜品店网页模板html
  • 安监局网站建设搭建一个官网需要多少钱
  • 番禺做哪些做网站的百度数据指数
  • 网站优化毕业设计潍坊设计网站建设
  • 电子商务网站建设新闻网站ip和pv
  • 贵州住房和城乡建设部网站网页制作图片链接
  • asp sql做学生信息网站wordpress 主题放在哪
  • 网站建设中html中关于图片显示的标签有哪些电器网站模板
  • 荆州网站seo推网站
  • 网站建设费用明细报价网站模板去哪要
  • 手机网站 程序网站翻译建设
  • 商城网站建设网络公司公共部门网站建设维护
  • 安徽网站推广公司汉中市建设工程审批
  • 站长网作品展示网站源码
  • seo零基础培训网站购物分享seo
  • 建设部标准规范网站专业的网页设计服务
  • 麻栗坡做网站wordpress怎样加入代码
  • 织梦手机网站教程建站经验 网站建设学院
  • 满满正能量网站wordpress 阿里
  • 用php做网站的优势价格低的车
  • 莱芜市莱城区城乡建设局网站网站站长如何赚钱
  • 遵义做推广网站wordpress能做手机版
  • 网站seo排名优化工具在线WordPress找不到站点
  • 成都哪里做网站好天长市做网站