Abstract:
Java memory model (JMM) is an important topic in Java language and Java virtualmachine (JVM) design. But the memory model in Java specification can't guarantee the safely running of Java multithread code. It needs memory coherence, which imposes constraints that prohibit JVM implementation optimization. To fix the problem of Java memory model in Java specification, a new Java memory model, L-JMM, is proposed, which is based on location consistency. This model extends the location consistency to adapt the features of Java technology. It also defines the rule of Java multithread memory operation, including ordinary variable rule, volatile variable rule, final variable rule and synchronization rule. It is proved that this memory model has the same property as location consistency. It can guarantee the correctness for Java multithread code. It can also improve the performance of Java virtual machine. Finally, the simulation of this memory model in the simulator MMS verifies that the new model boasts a better performance than the Java specification memory model does.