Java Memory Model Pragmatics

More content linked to this session:

vJUG-speaker-interview-button-1 vJUG-similar-content-button-1

The Java Memory Model is the most complicated part of Java spec that must be understood by at least library and runtime developers. Unfortunately, it is worded in such a way that it takes a few senior guys to decipher it for each other.

Most developers, of course, are not using JMM rules as stated, and instead make a few constructions out of its rules, or worse, blindly copy the constructions from senior developers without understanding the limits of their applicability. If you are an ordinary guy who is not into hardcore concurrency, you can pass this talk, and read high-level books, like “Java Concurrency in Practice”. If you are one of the senior folks interested in how all this works, join us!

In this talk, we will follow the logic of the model; review what pragmatic results the model was trying to achieve; look closely at the real world limitations the model had to endure; see how JMM tries to balance between developers’ needs and runtime/hardware maintainers requests.

IRC logs be be found here.

Click here to download a similar talk transcript.

Aleksey Shipilëv

Aleksey Shipilëv (@shipilev) works on JVM/JDK performance for almost 10 years now, more than half of that on OpenJDK. His primary skills are performance engineering, benchmarking, JVMs, JITs, and class libraries. In addition to regular performance work in OpenJDK, Aleksey develops and maintains various OpenJDK tools, including JMH, JOL and JCStress.