AtomicReference — 원자적으로 갱신되는 객체 참조

AtomicReference — 원자적으로 갱신되는 객체 참조

원자적으로 갱신될 수 있는 객체 참조를 나타내는 클래스예요.

출처: Java API Reference

본문

시그니처

public class AtomicReference<V> extends Object
    implements Serializable

타입 매개변수: V — 이 참조가 가리키는 객체의 타입.

설명

원자적으로 갱신될 수 있는 객체 참조예요. 원자 접근의 속성 설명은 VarHandle 사양을 참고하세요. AtomicReference<V>는 참조 값에 대해 CAS(compare-and-set) 방식의 원자적 갱신을 제공해요.

기본 생성자는 참조가 null인 상태로 생성되고, AtomicReference(V initialValue) 생성자로 초기 값을 제공할 수 있어요. 참조 값은 ==(동일성) 비교를 기반으로 compareAndSet·getAndSet 연산에 사용돼요.

주요 메서드

  • get() — 현재 값을 반환해요.
  • set(V newValue) — 값을 지정한 값으로 설정해요.
  • getAndSet(V newValue) — 값을 지정한 값으로 원자적으로 설정하고 이전 값을 반환해요.
  • compareAndSet(V expectedValue, V newValue) — 현재 값이 expectedValue와 같으면 값을 newValue로 원자적으로 설정해요.
  • compareAndExchange(V expectedValue, V newValue) — 현재 값(witness value)이 expectedValue와 같으면 값을 newValue로 원자적으로 설정해요.
  • accumulateAndGet(V x, BinaryOperator<V> accumulatorFunction) — 현재 값과 주어진 값에 주어진 함수를 적용한 결과로 현재 값을 원자적으로 갱신하고 갱신된 값을 반환해요.
  • getAndUpdate(UnaryOperator<V> updateFunction) — 주어진 함수를 적용한 결과로 현재 값을 원자적으로 갱신하고 이전 값을 반환해요.
  • updateAndGet(UnaryOperator<V> updateFunction) — 주어진 함수를 적용한 결과로 현재 값을 원자적으로 갱신하고 갱신된 값을 반환해요.
  • lazySet(V newValue) — 값을 지정한 값으로 설정해요 (느슨한 설정).

더 알아보기 (Learn more)