AtomicInteger는 int 자료형을 갖고 있는 wrapping 클래스입니다. AtomicInteger 클래스는 멀티쓰레드 환경에서 동시성을 보장합니다.

자바에서 동시성 문제를 해결하는데 3가지 방법이 있습니다.

AtomicInteger는 synchronized 보다 적은 비용으로 동시성을 보장할 수 있습니다.

AtomicInteger를 사용하는 방법에 대해서 알아보겠습니다.

객체 생성

AtomicInteger은 다음과 같이 생성할 수 있습니다. 초기값은 0이며, 초기값을 변경하고 싶으면 인자로 int 변수를 전달하면 됩니다.

AtomicInteger atomic = new AtomicInteger();
System.out.println("value : " + atomic.get());

AtomicInteger atomic2 = new AtomicInteger(10);
System.out.println("value : " + atomic2.get());

//결과
value : 0
value : 10

get(), set()

AtomicInteger의 int 값을 변경하려면 set(int) 메소드를, 값을 읽으려면 get() 메소드를 사용해야 합니다.

AtomicInteger atomic = new AtomicInteger();
System.out.println("value : " + atomic.get());

atomic.set(100);
System.out.println("value : " + atomic.get());

//결과
value : 0
value : 100

getAndSet()