
本文共 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 ������������������������
AtomicReferenceref = new AtomicReference<>("A");String prev = ref.get();ref.compareAndSet(prev, "B", new���������\\\ Continental);// AtomicStampedReference ������������������ ABA ������������������������������������������������
AtomicStampedReference������������������
AtomicStampedReference ��������� ABA problem ���������������������������������������������������������������������������������������������������������������������������������������������������
- compareAndSet��������������������������������� ABA ���������
������������������������
AtomicStampedReferenceref = 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 ������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
AtomicMarkableReferenceref = new AtomicMarkableReference<>(new GarbageBag("���������"), true);// ���������������������boolean marked = ref.compareAndSet(ref.getReference(), new GarbageBag("���������"), true, false);// new marked ���������������������������������
���������������������������������������������������������
������
���������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
发表评论
最新留言
关于作者
