[네이버클라우드캠프] 57일차. 자바 Critical Section과 Synchronized
* Critical Section = Critical Region (임계구역) 여러 스레드가 같은 메모리에 접근하여 값을 변경할 때 의도된 대로 동작하지 않는 문제가 발생한다. 이렇게 여러 스레드가 동시에 접근했을 때 문제가 발생하는 코드 부분을 "Critical Section" 또는 "Critical Region" 이라 부른다. [0이 할당되는 과정, "Critical Section"이 발생되는 과정] 예를 들어, 두 개의 스레드가 동시에 add 메서드에 접근한다고 가정해보자. 첫 번째 스레드가 values 배열에 값을 할당하기 전에 CPU 제어권을 잃어버리고, 두 번째 스레드가 접근하여 값을 할당한다. 그리고 첫 번째 스레드가 다시 CPU 제어권을 얻게 되면 이미 두 번째 스레드에 의해 할당된 값이 ..