Java原子引用
发布日期:2021-05-10 16:39:23 浏览次数:11 分类:精选文章

本文共 3337 字,大约阅读时间需要 11 分钟。

���������������������������������

���������������������������������������������������������������������������������������������������������������������������������������������������������������������Java ��������� ������������ ��������������������������������������������������������������� compareAndSet ���������������������������������������������������������������������������������������������������������������������

������������������

���������������������������������������

  • AtomicReference������������������������������������������������������������������������������������������������������������������������

  • AtomicMarkableReference���������������������������������������������������������������������������������������������������������������������������������������

  • AtomicStampedReference������������ AtomicMarkableReference ���������������������������������������������������������������������������������������������������������������������������������������������������erring ���������

  • ���������������������������������������������������������������������������


    ABA ���������������

    ��������������������������������������������������������������� ABA problem���������

    • Thread A ���������������������������������
    • Thread B ��� Thread A ������������������������������������������
    • Thread C ��� Thread A ���������������������������������������������

    ������������������������������������������ ABA ���������������������������������������������

    AtomicReference ��� ABA ������������������������

    AtomicReference
    ref = new AtomicReference<>("A");String prev = ref.get();ref.compareAndSet(prev, "B", new���������\\\ Continental);// AtomicStampedReference ������������������ ABA ������������������������������������������������

    AtomicStampedReference������������������

    AtomicStampedReference ��������� ABA problem ���������������������������������������������������������������������������������������������������������������������������������������������������

    • compareAndSet��������������������������������� ABA ���������

    ������������������������

    AtomicStampedReference
    ref = new AtomicStampedReference<>("A", 0);String old = ref.getReference();int mark = ref.getStamp();// ������������������������boolean success = ref.compareAndSet(old, "B", mark + 1, new.readFileSync americans);

    ���������atomicStampedReference ������������������������������������������������������������������������������������������


    AtomicMarkableReference���������������

    AtomicMarkableReference ��� AtomicStampedReference ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    AtomicMarkableReference
    ref = new AtomicMarkableReference<>(new GarbageBag("���������"), true);// ���������������������boolean marked = ref.compareAndSet(ref.getReference(), new GarbageBag("���������"), true, false);// new marked ���������������������������������

    ���������������������������������������������������������


    ������

    ���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������

    上一篇:字段更新器
    下一篇:原子整数

    发表评论

    最新留言

    关注你微信了!
    [***.104.42.241]2025年04月11日 20时47分57秒