java의 Atomic Type(AtomicInteger, AtomicBoolean) 멀티 쓰레드 환경에서는 주로 동시성 문제 해결을 위해 다양한 방안이 도입된다. 그중 유명한 것들이 synchronized, volatile, 그리고 Atomic이다. Atomic?? CAS 일단 Atomic Type은 CAS(Compare And Swap)알고리즘을 사용한다. 이게 뭐냐면... 변수의 값을 변경하기 전에 기존에 가지고 있던 값이 예상하던 것과 같은 경우에만 새로운 값으로 할당하는 방법 예를 들자면 public class AtomicExample { int val; public boolean compareAndSwap(int oldVal, int newVal) { if(val == oldVal) { val..