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
  • 相关阅读:
    iOS之POST与GET的优缺点
    iOS之设置头像(访问系统相册、本地上传)
    iOS之清除缓存
    iOS之自动调节输入文本框的高度
    iOS之隐藏键盘的方式
    iOS之关于 srand() 和rand()
    Android Studio移除模块
    Android 弹出输入框
    webApi添加视图出现/Index.cshtml”处的视图必须派生自 WebViewPage 或 WebViewPage<TModel>。
    JSON Web Tokens简单学习
  • 原文地址:https://www.cnblogs.com/da-peng/p/9920491.html
Copyright © 2011-2022 走看看