자바 메모리 모델을 줄여서 부르는 말이다.
멀티 스레드 환경에서 스레드 간의 상호작용을 부르는 말인데, 핵심은 happens-before 관계에 대한 정의다.
한 동작이 다른 동작보다 먼저 보장된다는 것이다.
이를 따르면 메모리 가시성이 보장된다. 간단히 얘기하자면 한 스레드에서 수행한 작업이 자른 스레드에서도 최신 상태로 반영된다는 것이다.
대표족인 것으로는 먼저 쓰여진 코드가 뒤에 있는 코드에 영향을 준다는 것이 있으며, 스레드 관련으로는 volateile, 동기화가 있다.
즉 이 두 개는 메모리 가시성 문제를 해결한다고 할 수 있다.