AtomicLong — 원자적으로 갱신되는 long 값

AtomicLong — 원자적으로 갱신되는 long 값

원자적으로 갱신될 수 있는 long 값을 나타내는 클래스예요.

출처: Java API Reference

본문

시그니처

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으로 반환해요.

더 알아보기 (Learn more)