美文网首页
Java 的对象原子性

Java 的对象原子性

作者: yunhen | 来源:发表于2018-08-03 10:41 被阅读5次

    AtomicReference、AtomicStampedReference、AtomicMarkableReference

    这三个都是自JDK1.5开始加入到java.util.concurrent.atomic下面的。他们都可以在lock-free的情况下以原子的方式更新对象引用。

    区别在于:AtomicStampedReference内部维护了一个[reference, integer] pairs的二元组。AtomicMarkableReference 内部维护了一个[reference, boolean] pairs的二元组。

    AtomicStampedReference中的stamp用来保证是否被重复修改

    主要方法

    //比较设置 参数依次为:期望值 写入新值 期望时间戳 新时间戳
    public boolean compareAndSet(V expectedReference,V  
    newReference,int expectedStamp,int newStamp)
    //获得当前对象引用
    public V getReference()
    //获得当前时间戳
    public int getStamp()
    //设置当前对象引用和时间戳,这个方法不是原子性的
    public void set(V newReference, int newStamp)
    
    

    相关文章

      网友评论

          本文标题:Java 的对象原子性

          本文链接:https://www.haomeiwen.com/subject/vekyvftx.html