The Java Memory Model
With the increasing availability and use of multicore processors Java developers need to acquire some understanding of the Java memory model. This is because multithread applications that work nicely on a single-core processor might exhibit “inexplicable” deficiencies when running on a multicore processor platform.
The reason may be differences in the caching strategies applied by different processors. In order to illustrate the issues this tutorial explains the Java features for multithread programming. Key topics include: memory model, visibility and reordering issues, volatile and atomic variables, initialisation safety and final fields, lock-free programming.
Video Producer: JavaZone Conference