AtomicReference — 원자적으로 갱신되는 객체 참조
AtomicReference — 원자적으로 갱신되는 객체 참조
원자적으로 갱신될 수 있는 객체 참조를 나타내는 클래스예요.
본문
시그니처
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)— 값을 지정한 값으로 설정해요 (느슨한 설정).