AtomicLong — 원자적으로 갱신되는 long 값
AtomicLong — 원자적으로 갱신되는 long 값
원자적으로 갱신될 수 있는 long 값을 나타내는 클래스예요.
본문
시그니처
public class AtomicLong extends Number
implements Serializable
구현된 인터페이스: Serializable.
설명
원자적으로 갱신될 수 있는 long 값이에요. 원자 접근의 속성 설명은 VarHandle 사양을 참고하세요. AtomicLong은 원자적으로 증가되는 시퀀스 번호 같은 애플리케이션에서 사용되며, Long의 대체품으로 사용할 수 없어요. 그러나 숫자 기반 클래스를 다루는 도구와 유틸리티가 균일하게 접근할 수 있도록 이 클래스는 Number를 확장해요.
생성자에 전달된 초기 값(기본 0)이나 지정된 기존 값에서 시작해, 원자 변수에 대한 후속 get/set 연산은 변수의 초기 값 쓰기와 이후의 모든 쓰기에 대한 happens-before 관계를 유지해요.
주요 메서드
get()— 현재 값을 반환해요.set(long newValue)— 값을 지정한 값으로 설정해요.getAndAdd(long delta)— 지정한 값만큼 현재 값을 원자적으로 더하고 이전 값을 반환해요.addAndGet(long delta)— 지정한 값을 현재 값에 원자적으로 더하고 갱신된 값을 반환해요.getAndIncrement()/getAndDecrement()— 현재 값을 원자적으로 1씩 증가/감소시키고 이전 값을 반환해요.incrementAndGet()/decrementAndGet()— 현재 값을 원자적으로 1씩 증가/감소시키고 갱신된 값을 반환해요.compareAndSet(long expectedValue, long newValue)— 현재 값이expectedValue와 같으면 값을newValue로 원자적으로 설정해요.accumulateAndGet(long x, LongBinaryOperator accumulatorFunction)— 현재 값과 주어진 값에 주어진 함수를 적용한 결과로 현재 값을 원자적으로 갱신하고 갱신된 값을 반환해요.getAndUpdate(LongUnaryOperator updateFunction)— 주어진 함수를 적용한 결과로 현재 값을 원자적으로 갱신하고 이전 값을 반환해요.longValue()— 이AtomicLong의 값을long으로 반환해요.