Language/Java
불변(Immutable)객체와 동시성
불변객체란불변 객체란, 생성된 후 그 상태를 변경할 수 없는 객체를 의미합니다. 이러한 불변 객체의 대표적인 예로 자바에서는 String과 Integer 등이 있습니다. 참조 변수는 Thread-Safe하지 않다불변 객체는 그 상태가 변하지 않기 때문에 여러 스레드에서 동시에 해당 객체를 참조하더라도 동시성 문제가 발생하지 않을 것처럼 보입니다. 하지만 실제로는 참조하는 변수의 동시성 문제로 인해 예상치 못한 동작을 할 수 있습니다. 예시로 불변객체인 Integer 값을 증가시키려는 시도를 했을때, race condition이 발생하는 것을 알 수 있습니다.public class CountingTest { public static void main(String[] args) { Cou..