책은 JAVA에서 멀티 스레드 동기화에 대한 방법을 핵심만 딱 짚어서 알려주고 있다.

좀 더 풀어 설명하면 좋을 것 같아 정리해 보았다.

1. 공유 자원 문제


공유 중인 가변 데이터공유 자원이라고 표현해 보겠다.

멀티 스레드 환경에서 서로 공유하는 자원을 의미한다.

https://codedragon.tistory.com/5398

https://codedragon.tistory.com/5398

문제는 공유 자원에 대한 스레드간 경합이 발생하는 것인데 이를 **경쟁 상태(race condition)**라 한다.

그리고 그런 문제가 발생할 수 있는 영역을 **임계 영역(critical section)**이라 한다.

그래서 이번 아이템의 핵심인 스레드 동기화는 경쟁 상태를 해결하는 방법이고

이는 다른 말로 가시성과 원자성을 챙긴다고도 한다.

멀티 스레드를 구성하다 보니 비가시성, 비원자성 문제가 발생한다는 의미

둘에 대해 알아보자.