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

深圳建设工程价格信息网站seo网站项目

深圳建设工程价格信息网站,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://www.hn-smt.com/news/67818/

相关文章:

  • 从素材到输出全流程覆盖!Cartoon Animator 5.23:Windows 10/11 端 2D 动画创作首选工具
  • 2025年靠谱的平版胶印油墨厂家最新实力排行
  • 2025年比较好的VR工厂远程云参观行业竞争力排行榜
  • 2025年热门的水处理环保设备品牌厂家排行榜
  • 2025年11月会计师事务所推荐:主流机构口碑评价与排行榜单
  • 拉帮机全面评估与选购指南:2025年11月最新版TOP5推荐榜单
  • 2025年东莞横沥到上海物流渠道权威推荐榜单:东莞横沥到四川物流/东莞横沥到合肥物流/东莞横沥物流专线服务商精选
  • 2025北京留学机构都有什么
  • 【2025-11-25】连岳摘抄
  • 2025年压接电压降定做厂家权威推荐榜单:线束电压降测试仪‌/电压降测试仪‌/线束电压降‌源头厂家精选
  • 2025 年 11 月传感器厂家权威推荐榜:覆盖压力传感器,温度传感器,位移传感器,智能传感器的最新精选与选购指南
  • 2025年复式别墅定做厂家权威推荐榜单:活动房‌/苹果舱‌/集装箱房‌源头厂家精选
  • 2025 年 11 月管道更换服务实力厂家推荐榜:覆盖老旧破损/防腐耐高温/无损快速更换,自来水/燃气/暖气/工业/中央空调/地下室内外管道专业施工与高效解决方案
  • 2025年国内百叶窗企业十大推荐:安徽丝路鼎合国际贸易有限公司领衔
  • 2025北京留学机构哪个好
  • 2025年11月乙二醇厂家推荐榜:五大优质供应商综合对比与权威评测
  • 2025年系统门窗隔热条优质供应商综合评测与选择指南
  • 2025 年 11 月切膜机厂家权威推荐榜:覆盖自动切膜机、激光切膜机、高速切膜机、智能切膜机、不干胶切膜机等,精准高效助力生产升级!
  • 2025 最新主轴夹座生产厂家权威推荐榜:聚焦专利技术与实战经验,涵盖全品类适配方案车床 / 小型双向 / 双向回转 / 回转 / 超薄双头主轴夹座公司推荐
  • 一文厘清:CRM与SCM、ERP、PLM、WMS、MES、QMS、SCADA等系统关系 - SaaS软件
  • 2025年11月石墨烯供热品牌权威推荐与选购指南
  • JL-37数字式测斜仪 基坑,路基 坝体 山体滑坡等内部位移监测
  • 批量生成密码
  • 2025年热门的国标限流式保护器TOP实力厂家推荐榜
  • AI驱动通信的未来愿景与技术实践
  • 2025年口碑好的碳纤维装饰片材厂家最新热销排行
  • 2025年靠谱的新型建材厂家推荐及选择参考
  • 2025年质量好的中东展览特装权威排行榜
  • 2025年靠谱的办公室设计企业实力评级榜
  • 智慧安全管理系统公司推荐,2025智慧安全管理系统公司权威榜