 The Java memory model was the first attempt to provide a comprehensive memory model for a popular programming language.It was justified by the increasing prevalence of concurrent and parallel systems, and the need to provide tools and technologies with clear semantics for such systems.Since then, the need for a memory model has been more widely accepted, with similar semantics being provided for languages such as C++.