Java Memory Model - описывает как будут отображаться данные из памяти в процессах. В какой момент потоки будут узнавать об изменениях сделанных в других потоках. JMM описана в главе 17 The Java Language Specification.

Я нашел интересный FAQ по JMM.

А оттуда есть еще более интересная ссылка на материалы для авторов компиляторов, где собраны материалы по реализации многопоточности на разных процессорах и операционных системах.