Java - AtomicReference 사용 방법
AtomicReference는 V 클래스(Generic)의 객체를 wrapping 클래스입니다. AtomicReference 클래스는 멀티쓰레드 환경에서 동시성을 보장합니다. 자바에서 동시성 문제를 해결하는데 3가지 방법이 있습니다. "volatile" 은 Thread1에서 쓰고, Thread2에서 읽는 경우만 동시성을 보장합니다. 두개의 쓰레드에서 쓴다면 문제가 될 수 있습니다. "synchronized"를 쓰면 안전하게 동시성을 보장할 수 있습니다. 하지만 비용이 가장 큽니다. Atomic 클래스는 CAS(compare-and-swap)를 이용하여 동시성을 보장합니다.
https://codechacha.com/ko/java-atomic-reference/