이전 포스팅에서 쓰레드의 메모리 구성에 대해 알아봤다.실제 쓰레드 프로그래밍에서는 하나의 인스턴스에 둘 이상의쓰레드가 접근하는 형태의 구현을 많이 볼수 있다. 하지만이러한 경우에 동기화를 해주지 않으면 문제가 발생한다.우선 어떤 문제가 발생되는지 알아보자. 예를 들어 변수A에 100이 저장 되어있고,저장된 값을 1씩 증가시키는 연산을두 개의 쓰레드가 한다고 하자. 이 상황에서 쓰레드1이 변수 A에 저장된 값을101로증가시켜놓은 다음 쓰레드2가 변수 A에 접근을하면예상되듯 변수 A에는 101이 저장된다. 그런데 여기서 중요한것은 값의 증가 방식이다.값의 증가는 CPU를 통해 연산이 필요한 작업이므로그냥 변수A에 저장된 값이 변수 A에 저장된 상태로 증가하지 않는다.이 변수 A에 저장된 값은 쓰레드1에 의해..