This web page is a starting point for discussions of and information
concerning the Java Memory Model (Chapter
17 of the Java
Language Specification). The Java Memory Model defines how threads
interact through memory. It used to be somewhat unclear and unnecessarily
limiting, and so was revised. This is a reference page for that revision.
The official site for JSR 133 - The Java(tm) Memory Model and Thread
Specification Revision - is here.
Sarita Adve and Kourosh Gharachorloo wrote a tutorial on
memory
models in 1995 that remains an excellent reference and primer.
Compaq Research Report 95/7, September 1995,
95.7
-- Shared Memory Consistency Models: A Tutorial.
For those wishing to understand the memory model in full
A journal submission about the memory model that combines Jeremy Manson's
dissertation, the POPL paper and the CSJP paper. For those interested
in a thorough discussion of the memory model issues, this is the best bet.
(October 7, 2005).
This document describes why the double-checked locking pattern is broken
unless you use explicit memory barriers (or make assumptions about
your processor and compiler).
Descriptions of double-check idiom
Reality Check,
Douglas C. Schmidt, C++ Report, SIGS, Vol. 8, No. 3, March 1996.
CAPSL Technical Memo 16: (148K gzipped Postscript),
"Location Consistency -- a new Memory Model and Cache Consistency Protocol,"Guang R. Gao, Vivek Sarkar,
February 16, 1998.
This page maintained by
William Pugh.
This material is based upon work supported by the National Science Foundation under Grant No. 0098162. Any opinions, findings, and conclusions or recommendations expressed in this material are those of the author(s) and do not necessarily reflect the views of the National Science Foundation.