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
  • 相关阅读:
    GIS Tools for Hadoop 详细介绍
    凤凰涅槃,浴火重生(2013年总结)
    13年我们依然在路上
    HDU 4022 Bombing (map + multiset)
    ArcGIS 10.2 操作SQLite
    hdu1690 Bus System (dijkstra)
    HDU 4704 Sum
    Dark Side of Cloud Storage —— 数据对像的分块消重
    gdb x查看二进制
    信号 signal sigaction补充
  • 原文地址:https://www.cnblogs.com/da-peng/p/9920491.html
Copyright © 2011-2022 走看看