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
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