zoukankan      html  css  js  c++  java
  • AtomicStampedReference

    重要的参考博客:

    https://blog.csdn.net/zhaozhirongfree1111/article/details/72781758

    package _AtomicStampedReference;
    
    import java.util.concurrent.atomic.AtomicMarkableReference;
    import java.util.concurrent.atomic.AtomicStampedReference;
    
    public class MyAtomicStampedReference {
        public static void main(String[] args) {
            //对在AtomicReference上面,通过计数的方式,解决了ABA的问题
            B b = new B();
            b.setStr("old b");
            AtomicStampedReference<B> aAtomicStampedReference = new AtomicStampedReference<B>(b,0);
            System.out.println(aAtomicStampedReference.getReference().getStr()+"" +aAtomicStampedReference.getStamp());
    
            //更改里面的b的值
            b.setStr("new b");
            //设置预期的类和现在的类,预期的版本号与现在的版本号,如果预期与当前的符合就更改。
            aAtomicStampedReference.compareAndSet(b,b,0,1);
    
            System.out.println(aAtomicStampedReference.getReference().getStr()+"" +aAtomicStampedReference.getStamp());
    
            //===========================================================
            B b1 = new B();
            b1.setStr("old b1");
            AtomicMarkableReference<B> atomicMarkableReference = new AtomicMarkableReference<>(b1,false);
            System.out.println(atomicMarkableReference.getReference().getStr()+",,"+atomicMarkableReference.isMarked());
            b1.setStr("new b1");
            atomicMarkableReference.compareAndSet(b1,b1,false,true);
            System.out.println(atomicMarkableReference.getReference().getStr()+",,"+atomicMarkableReference.isMarked());
    
    
        }
    }
    old b,0
    new b,1
    old b1,,false
    new b1,,true
  • 相关阅读:
    如何判断touch到子视图或离开视图
    NSString属性声明中的copy和retain区别
    iOS创建PDF文件
    NSString的内存分配及管理
    清除新微博Cookie
    Object System (对象系统)
    基于组件的游戏编程
    继电器srd05vdcslc
    JavaScript专题(二):深入理解iframe
    Eclipse插件安装maven svn ibatis openExplorer PropertiesEditor
  • 原文地址:https://www.cnblogs.com/da-peng/p/9920491.html
Copyright © 2011-2022 走看看