整个Java虚拟机系统中有一个主共享存储器,其中保存着共享变量的主拷贝;每个线程都有一个私有的工作存储器,在其中线程可以保存一些共享变量在本地的拷贝.在Java规范中,通过定义一些较低层次操作发生的次序规则,描述多个线程之间以及线程与主存储器之间的相互关系.其中与线程相关的操作:use,assign,load,store,lock,unlock;与主存储器相关的操作:read,write.每个操作的执行都是原子化的.在线程的执行过程中,它可以执行一系列这些操作。
模型中对各个操作问执行次序的要求主要为:①一个线程执行的所有操作之间要遵循一个全局序;②对任意一个变量在主存储器上的所有操作之间要遵循全局序;③对一个锁在主存储器上的所有操作之间是遵循全局序;④不允许一个操作在序关系上跟随自己。