1 INTRODUCTIONProgrammers at large often feel difficult to learn Java Memory Model (JMM for short) from either Java Language Specification Third Edition (JLSv3 for short)[11] or Java Virtual Machine Specification Second Edition (JVMSv2 for short)[12] due to several reasons. One is he/she lacks basic understanding of out-of-order execution in modern CPUs and compilers. Next is there are so many aca

