http://www.cs.umd.edu/~pugh/java/memoryModel
http://stackoverflow.com/questions/21148085/storeload-memory-barrier