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

招聘预算网站怎么做徐州网站制作报价

招聘预算网站怎么做,徐州网站制作报价,易语言做购物网站,适合seo软件CAS(compare and swap) CAS是#xff08;compare and swap#xff09;的缩写#xff0c;字面意思是比较交换。CAS锁通常也是实现乐观锁的一种机制#xff0c;首先会给它一个期望值#xff0c;用期望值与老值做比较#xff0c;如果相等就用新传入的值进行修改。但是CAS通常…CAS(compare and swap) CAS是compare and swap的缩写字面意思是比较交换。CAS锁通常也是实现乐观锁的一种机制首先会给它一个期望值用期望值与老值做比较如果相等就用新传入的值进行修改。但是CAS通常有一个ABA问题就是你把新值与老值做比较的时候可能有其他线程已经修改过这个值了只是后来最后值又被修改了回来通常解决办法是用原子包装类的戳记引用的版本号机制修改一次版本号也会发生自增最后修改值的时候就会有期望值和期望版本号都得符合不然修改失败。 ABA问题的复现及解决 package com.bilibili.juc.cas;import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicStampedReference;/*** CAS是CompareAndSwap的简称 期望值与老值比对如果一致把新值覆盖但是会有一个问题就是别的线程把值修改后再次修改为了原来的值所以就加入版本号机制* 常用来实现乐观锁* AtomicStampedReference 戳记引用 在执行 CAS 操作时不仅比较引用的值是否相同还会比较一个标记值Stamp。只有当引用值和标记值都相同时* 才会执行 CAS 操作。这样可以避免 ABA 问题因为即使引用的值在过程中变化了但如果标记值也变化了CAS 操作就不会成功。*/ public class ABADemo {static AtomicInteger atomicInteger new AtomicInteger(100);static AtomicStampedReferenceInteger stampedReference new AtomicStampedReference(100, 1);public static void main(String[] args) {new Thread(() - {int stamp stampedReference.getStamp();System.out.println(Thread.currentThread().getName() \t 首次版本号 stamp);//暂停500毫秒,保证后面的t4线程初始化拿到的版本号和我一样try {TimeUnit.MILLISECONDS.sleep(500);} catch (InterruptedException e) {e.printStackTrace();}stampedReference.compareAndSet(100, 101, stampedReference.getStamp(), stampedReference.getStamp() 1);System.out.println(Thread.currentThread().getName() \t 2次流水号 stampedReference.getStamp());stampedReference.compareAndSet(101, 100, stampedReference.getStamp(), stampedReference.getStamp() 1);System.out.println(Thread.currentThread().getName() \t 3次流水号 stampedReference.getStamp());}, t3).start();new Thread(() - {int stamp stampedReference.getStamp();System.out.println(Thread.currentThread().getName() \t 首次版本号 stamp);//暂停1秒钟线程,等待上面的t3线程发生了ABA问题try {TimeUnit.SECONDS.sleep(1);} catch (InterruptedException e) {e.printStackTrace();}boolean b stampedReference.compareAndSet(100, 2022, stamp, stamp 1);System.out.println(由于戳记标识被t3修改了所以修改结果为 b 值为 stampedReference.getReference() ;戳记版本标识为 stampedReference.getStamp());}, t4).start();}/*** 下面就是复现ABA问题*/private static void abaHappen() {new Thread(() - {atomicInteger.compareAndSet(100, 101);try {TimeUnit.MILLISECONDS.sleep(10);} catch (InterruptedException e) {e.printStackTrace();}atomicInteger.compareAndSet(101, 100);}, t1).start();new Thread(() - {try {TimeUnit.MILLISECONDS.sleep(200);} catch (InterruptedException e) {e.printStackTrace();}System.out.println(atomicInteger.compareAndSet(100, 2022) \t atomicInteger.get());}, t2).start();} }
http://wiki.neutronadmin.com/news/234380/

相关文章:

  • 网站怎么做png阴影珠海网站建设易搜互联
  • 家政服务公司网站源码房屋装修效果图怎么制作
  • 包头网站开发建设高端网线
  • php网站建设思路免费高清视频下载
  • 北京专业网站维护公司商务网站的建设
  • 做网站怎么套模板中国十大购物商场排名
  • 游戏开奖网站建设海原县建设局网站
  • 网上书城 网站建设策划书网站项目如何做需求分析
  • 办公用纸网站建设巨量引擎官网
  • 怎么做自己的外卖网站网站建设职业描述
  • 手机网站服务器检验是否安装wordpress
  • 网站建设捌金手指花总二八网站开发大赛发言稿
  • 手机网站报价表龙华大浪做网站
  • 辽宁省建设工程招标投标协会网站网站开发工具与技术
  • 哪些网站上推广比较好图书页面设计模板
  • 安徽省建设工程造价管理总站网站网络整合营销六大模型
  • 田贝网站建设建筑网官网平台
  • 湖南新备案的网站做电池的有哪些网站
  • asp.net做的网站要放到网上空间去_要放哪些文件上去泰安程序开发
  • 建站管理过程重庆施工员证查询网站
  • 焦作网站制作道路建设网站专题
  • 海口网站建设价格wordpress小程序 标签
  • 在哪做网站不要钱投资小利润高的小生意
  • 麻涌建设网站昆明建网站要多少钱
  • 网站推广与电话销售商城网站制作教程
  • 重庆游戏网站开发网站制作大型公司
  • 毕设做网站可以得高分吗网站文章采集
  • 响应式网站图解网站建设广东
  • 分析网站优缺点网站系统建设招标
  • 网站的页面wordpress插件直播