Java Part3 상 - 4.4 JVM 메인 메모리와 작업 메모리
- JVM은 하드웨어에 의존적이지 않고, 플랫폼에 독립적인 자바 애플리케이션 실행 환경이다. 💻
- 자바 메모리 모델(JMM)은 메인 메모리와 스레드별 작업 메모리로 구성된다. 🗂️
- 작업 메모리는 스레드마다 독립적으로 할당되며, 메인 메모리의 변수 사본을 저장한다. 💾
- 작업 메모리에 대한 직접적인 접근 및 제어는 불가능하다. 🚫
- 메인 메모리와 작업 메모리 간의 데이터 동기화는 JMM에 의해 관리되며, 항상 동기화되는 것은 아니다. 🔄
- 동기화는 필요할 때만 이루어지며, 성능 저하를 방지하기 위해 부분적으로 수행된다. ⏱️
- 여러 스레드가 동일한 변수에 접근하는 경우 레이스 컨디션이 발생할 수 있다. ⚠️
- JMM은 변수 접근(읽기, 쓰기)에 대한 규칙을 정의하여 동기화 문제를 해결한다. ⚖️
로드(load)
와 스토어(store)
는 메인 메모리와 작업 메모리 간의 데이터 이동을 나타낸다. ➡️
- 개발자는 JMM의 동기화 규칙을 이해하고, 필요에 따라 동기화를 구현해야 한다. 💡