https://en.wikipedia.org/wiki/Java_memory_model
JSR 133: JavaTM Memory Model and Thread Specification Revision : https://jcp.org/en/jsr/detail?id=133
The JSR-133 Cookbook for Compiler Writers: http://gee.cs.oswego.edu/dl/jmm/cookbook.html
http://tutorials.jenkov.com/java-concurrency/java-memory-model.html http://tutorials.jenkov.com/java-concurrency/volatile.html
The Java volatile Happens-Before Guarantee
https://www.logicbig.com/tutorials/core-java-tutorial/java-multi-threading/happens-before.html