Java 변수를 **메인 메모리에 저장하겠다라고 명시**하는 것이다.
Read**할 때마다 **CPU Cache에서 읽지 않고 메인 메모리에서 읽는 것**이다.Write**할 때마다 **메인 메모리에까지 작성하는 것**이다.
MultiThread 환경이라고 했을 때,
volatile 사용 X 변수 → 성능 향상을 위해 Main Memory에서 읽은 변수 값을 **CPU Cache에 잠시 저장**한다.
**각각의 Thread**가 변수 값을 읽어올 때 CPU Cache에 저장된 값이 다르기 때문에 변수 값 불일치 문제 발생
Multi Thread 환경이라고 했을 때,
**하나의 Thread만 read & write**하고 나머지 Thread는 read만 하는 상황에서 가장 최신의 값 보장

위 설명처럼 여러 개의 Thread가 write가 가능한 상황에서는 적합하지 않다.